app 注册防刷 php,手机验证码设计和防刷制度
隨著移動互聯網的發展,現在基本每個網站都有手機驗證碼了,手機驗證碼設計不麻煩,主要就是容易被其他人刷發短信接口,
所以后面也會說說如何防止被刷接口
數據庫設計
CREATE?TABLE?`sms_captcha`?(
`id`?int(11)?unsigned?NOT?NULL?AUTO_INCREMENT,
`mobile`?varchar(20)?NOT?NULL?DEFAULT?''?COMMENT?'手機號碼',
`captcha`?varchar(10)?NOT?NULL?DEFAULT?''?COMMENT?'驗證碼',
`expires_at`?timestamp?NOT?NULL?DEFAULT?'0000-00-00?00:00:00'?COMMENT?'驗證碼有效期',
`status`?tinyint(4)?NOT?NULL,
`created_time`?timestamp?NOT?NULL?DEFAULT?'0000-00-00?00:00:00',
PRIMARY?KEY?(`id`),
KEY?`mobile`?(`mobile`)
)?ENGINE=InnoDB??DEFAULT?CHARSET=utf8;
發送驗證碼偽接口
對于這種可能被很多地方調用的業務,一定要封裝成SmsService,一般我會定義以下幾個方法
防刷措施
每分鐘只能發送一次驗證碼
加入圖形驗證碼
表單加入隱藏驗證域
分析access.log 對惡意的IP進行黑名單操作(比較暴力了,我國國情一個IP可能好多人用了)
每分鐘只能發送一次驗證碼?每分鐘的限制 直接用數據庫驗證碼的創建時間 和 當前時間對比就好了
加入圖形驗證碼?
這個自己google或者百度下吧
表單加入隱藏驗證域?
一般我會加兩個隱藏
域,一個時間戳,一個加密字符串(加密算法要和時間戳相關,例如 m5d( salt + 時間戳 ) ?)
總結
以上是生活随笔為你收集整理的app 注册防刷 php,手机验证码设计和防刷制度的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab的fft函数写法,matla
- 下一篇: 动态规划算法php,php算法学习之动态