欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

web 操作的原子性

程序员文章站 2022-04-30 11:25:51
...

先看手机号注册的流程


web 操作的原子性
            
    
    博客分类: Java Web 注册破解注册防破解register 
 步骤如下:

(1)输入合法手机号,要求未注册;

(2)给该手机号发送短信注册码;

(3)输入手机收到的短信注册码;

(4)输入密码等

(5)完成注册.

 

现在有两个问题:

(a)必须要向手机号发送短信,才能注册吗?

是的,因为必须使用自己的手机才能注册.

如何验证是自己的手机呢?

如果是别人的手机,你能收到短信吗?

如果你能收到短信,就认为手机是你的,合法的.

 

(b)不发送短信,有没有办法注册成功

有.

如果注册接口没有限制,就可以尝试不同的短信注册码,这就是所谓的暴力破解

 

由上得出如下规则:

(1)只有发送了短信,才能调用注册接口;


web 操作的原子性
            
    
    博客分类: Java Web 注册破解注册防破解register 
 

如果没有发送短信,不允许调用注册接口

(2)调用注册接口,如果连续失败n次,则必须要求重新发送短信注册码

防止暴力破解
web 操作的原子性
            
    
    博客分类: Java Web 注册破解注册防破解register 
 

(3)如果注册成功,则清空注册失败次数

 

(4)30小时之后要求必须重新发送短信注册码

短信注册码有时效性.
web 操作的原子性
            
    
    博客分类: Java Web 注册破解注册防破解register 
 (5)"register_mobile" + mobile是干嘛的

就是用于判断是否发送过短信.

每次发送短信都设置"register_mobile" + mobile,每次注册时都判断"register_mobile" + mobile是否为空.

为空,说明没有发送短信或者短信已经过期,需要重新发

 

总结:

(a)发送短信和注册操作具有原子性.

所以需要联合校验

(b)所有安全方面的凭证(手机短信,otp等)必须设置过期时间

 

手机号换绑也需要防止暴力破解

场景:

别人在A电脑上登录了,我乘别人不在的时候,在A电脑执行换绑操作.

此时我虽然不能获取旧手机号的短信,但是我可以获取新手机号(新手机是我自己的)的短信

所以我可以不断的尝试,每次都使用不同的旧手机号短信

参考:

http://hw1287789687.iteye.com/blog/2264260

http://hw1287789687.iteye.com/blog/2264341

 

 

 

 

  • web 操作的原子性
            
    
    博客分类: Java Web 注册破解注册防破解register 
  • 大小: 96.6 KB
  • web 操作的原子性
            
    
    博客分类: Java Web 注册破解注册防破解register 
  • 大小: 143.5 KB
  • web 操作的原子性
            
    
    博客分类: Java Web 注册破解注册防破解register 
  • 大小: 287 KB
  • web 操作的原子性
            
    
    博客分类: Java Web 注册破解注册防破解register 
  • 大小: 158 KB