zoukankan      html  css  js  c++  java
  • 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的加密解密。

  • 相关阅读:
    627. Swap Salary
    176. Second Highest Salary
    596. Classes More Than 5 Students
    183. Customers Who Never Order
    181. Employees Earning More Than Their Managers
    182. Duplicate Emails
    175. Combine Two Tables
    620. Not Boring Movies
    595. Big Countries
    HDU 6034 Balala Power! (贪心+坑题)
  • 原文地址:https://www.cnblogs.com/ljcgood66/p/12186134.html
Copyright © 2011-2022 走看看