验证码短信接口受到恶意调用

早上来到公司,手机收到验证码短信报警邮件,1个小时内被消耗掉1w条短信,只能先停了短信接口然后检查原因。很奇怪,验证码短信做了电话号码和ip限制,限制同一电话号码一小时只能只能调用5次,1分钟内不能调用第二次,同一ip一天只能调用50次,一小时能只能调用10次,ajax请求判断是本站请求才通过,我觉得应该是不会被恶意调用了的。可是还是发生了,检查步骤:

1、记录恶意攻击者的http请求头信息  采用php内置方法getallheaders  --- debug_log(print_r(getallheaders(), true));

 * 调试日志
 * @param mixed $info
 */
function debug_log($info, $file=NULL)
{
	check_dir(RUNTIME_PATH . 'Logs/debug');
	file_put_contents($file?$file:(RUNTIME_PATH . 'Logs/debug/'.'debug_' . date('Ymd') . '.log'), "[" . date('H:i:s') . "] " . ( (is_array($info) || is_object($info)) ?print_r($info, true):$info ) . "\n" , FILE_APPEND);
}


/**
 * 判断目录是否存在 创建目录
 * @param unknown $dir
 * @param number $mode
 * @return boolean
 */
function check_dir($dir, $mode = 0755)
{
	if (is_dir($dir) || @mkdir($dir, $mode)){
		return true;
	}
	if (!(check_dir(dirname($dir), $mode))){
		return false;
	}
	return @mkdir($dir, $mode);
}


 

获取到攻击者的http请求头信息,分析请求这信息正常,和用户的请求模式一模一样,ip,session_id和cookie_id都在变化,没有办法解决。 去技术群问新浪大神,大神们给了建议,首先是电话号码和ip限制,这些我都做了。最后解决办法为发送手机短信验证码之前添加一个验证,输入发送短信验证码,选择验证码时尝试了极验验证码geetest.com,效果很炫,但是免费版不支持多域名,企业版收费太贵,最后还是用自己的验证码   至此验证码短信接口受到恶意调用问题告一段落 

总结 短信类代码需要一个完整类管理,做好安全防范,统一管理方便调用,发送短信验证码前需要加入图片验证码,否则会被运营商封掉端口


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值