• iOS开发 短信验证防止被刷


    需求:防止短信验证码被恶意频繁请求

    这类攻击主要目的是刷掉目标网站的短信费用,攻击者会不停变换各种接口参数如手机号、IP(采用高匿代理)等去请求后台发送短信验证码,进行恶意刷短信,后台根本无力辨别用户真伪。攻击目标明确,难以防护,因其变换不同IP、手机号,一些简单措施基本失效,产品设计人员在前期产品设计时尤其需要注意这类攻击。(https://blog.csdn.net/liyanlei5858/article/details/79740530

    解决方案:

    对发送者进行唯一性识别

    防止恶意攻击者通过修改传向服务器各项参数,造成多IP多手机号刷短信验证码的行为,所以后台应对前台传过来的参数进行验证。方法一般是用token作为唯一性识别验证,后台写一个算法将token注入到前端,然后前端可以通过相应的规则获取到token,在发送短信验证请求接口数据时带上token,在后端对token进行验证,验证通过才能正常将短信发送。

    然而有漏洞:

    token设置的优化:简单的字符串改变位置的算法,有可能很轻松被破解!

    简单的很容易被破解,这里推荐加密,可以进行对称加密,对称加密有很多种,这里推荐SHA256带key加密!

    那key也是字符串,被反编译也是有可能的,这里推荐对key也进行一次或多次处理,写入代码的是加密后的key, 用的时候先解密key, 再在生成唯一的token时用key!

    就算反汇编可以看到解密前的key,但是他不知道怎么处理这个key,他不知道这个key的解密逻辑!

    以上应该可以解决大部分问题,如果还被破译,那就混淆,处理敏感字符串。但也不是完全的

    参考:https://www.jianshu.com/p/49e98b8a05fd

    还不行就进行非对称的加密:

    这里推荐使用基于RSA的加密解密。

  • 相关阅读:
    bzoj3786 星系探索
    [JSOI2008]火星人
    [NOI2005]维护数列
    [POI2008]砖块Klo
    郁闷的出纳员
    [HNOI2002]营业额统计
    [BZOJ1651][Usaco2006 Feb]Stall Reservations 专用牛棚
    [BZOJ2124]等差子序列
    [BZOJ3038]上帝造题的七分钟2
    [BZOJ1711][Usaco2007 Open]Dining吃饭
  • 原文地址:https://www.cnblogs.com/ljcgood66/p/12186134.html
Copyright © 2020-2023  润新知