这两天,平台突然遇到刷短信问题,我们这么小的平台,也被搞上。还好使用的阿里云,每个用户每天限制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
刷短信、短信轰炸方案
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.