這兩天,平臺突然遇到刷短信問題,我們這麼小的平臺,也被搞上。還好使用的阿里雲,每個用戶每天限制40條短信。
但這也不能限制這無休止的轟炸啊。第一次碰到這種問題,還是有點慌亂,項目正在重構,各種問題一團糟,很是煩惱。
不閒聊了,開始正題,時間有限,也不知道正確不(水平有限):
分析了短信記錄、nginx請求日誌,確實是在刷短信。解決方法:
1.添加手機號 '系統黑名單',限制每天10次 註冊(只刷註冊短信) 請求,超過10次,加入黑名單,不發短信
sms_record_counts
id
mobile - 手機號
date - 日期(20180331)
number - 次數
created_at
updated_at
CREATE TABLE `sms_record_counts` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`date` int(8) unsigned NOT NULL COMMENT '日期,格式:20180331',
`mobile` varchar(11) NOT NULL DEFAULT '' COMMENT '手機號',
`number` int(11) unsigned NOT NULL COMMENT '請求發送次數',
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
sms_blacks
id
mobile - 手機號
created_at
updated_at
CREATE TABLE `sms_blacks` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`mobile` varchar(11) NOT NULL DEFAULT '' COMMENT '手機號',
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2.添加 '圖形驗證碼',發送短信之前,先進行驗證碼判斷
還好項目使用的是 Laravel 這種級別框架,都有內置的 csrf token 認證。應該不是模擬 post 轟炸,猜測對方應該只能是類似爬蟲這類的模擬人工操作。添加 '圖形驗證碼',應該可以直接避免。當然,如果對方很厲害,還有 圖像識別 這類的技術支持,'圖形驗證碼' 作用也不大。(網絡方面知識極度欠缺,沒看過啥,只是自己直覺)
本來考慮 '極驗證',簡單瀏覽了下,我估計2小時搞不來,所以,就先使用 '圖形驗證碼' 試試效果。
laravel 極驗證 依賴包:http://laravelacademy.org/post/5291.html
使用了 laravel 的依賴包:https://github.com/mewebstudio/captcha,非常簡單
3.nginx 添加 '黑名單'
對於服務器運維的,實在是太差了,一直想學習,也沒時間。等項目成功後,就學習運維、架構。
搜索到一篇文章不錯:
https://blog.csdn.net/linuxnews/article/details/54587963
中間還涉及到一個問題:
短信使用了 crontab,mac 本地測試,不知道修改 crontab 後,如何使之生效,搜索了不少文章:(都未生效,最後發現自己的問題)
https://www.v2ex.com/t/412435
這篇文章和我碰到的問題一樣,總結下:
crontab 應該是修改了就會生效,我自己的操作失誤,還以爲修改後,因爲之前加載了配置,而導致的修改後不生效,必須重新啓動。
crontab -e // 編輯
crontab -l // 顯示
網上搜索的停止命令:
sudo /usr/sbin/cron stop
返回:
cron: cron already running, pid: 177
殺死進程:
sudo kill -9 177
殺死後,立即又運行新的 crontab 進程
國外有一篇文章也提到過:
sudo launchctl unload -w /System/Library/LaunchDaemons/com.vix.cron.plist
鏈接:
https://apple.stackexchange.com/questions/266835/how-do-i-restart-the-cron-service-on-osx
刷短信、短信轟炸方案
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.