前些天由于短信接口没有机密,遭到了无聊人士的攻击,不停地掉接口发短信。给我们敲了警钟,应该注意网站安全了。
1.重要接口的加密处理(hash通过验证码来产生)
2.对ip、手机号等数据做限制
3.GET、POST数据过滤,去除可能产生sql注入和跨站请求的数据(360safe的方法可用)
$getfilter = "'|(and|or)\\b.+?(>|<|=|in|like)|\\/\\*.+?\\*\\/|<\\s*script\\b|\\bEXEC\\b|UNION.+?SELECT|UPDATE.+?SET|INSERT\\s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)\\s+(TABLE|DATABASE)"; $postfilter = "\\b(and|or)\\b.{1,6}?(=|>|<|\\bin\\b|\\blike\\b)|\\/\\*.+?\\*\\/|<\\s*script\\b|\\bEXEC\\b|UNION.+?SELECT|UPDATE.+?SET|INSERT\\s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)\\s+(TABLE|DATABASE)"; $cookiefilter = "\\b(and|or)\\b.{1,6}?(=|>|<|\\bin\\b|\\blike\\b)|\\/\\*.+?\\*\\/|<\\s*script\\b|\\bEXEC\\b|UNION.+?SELECT|UPDATE.+?SET|INSERT\\s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)\\s+(TABLE|DATABASE)"; foreach ($_GET as $key => $value) { StopAttack($key, $value, $getfilter); } foreach ($_POST as $key => $value) { StopAttack($key, $value, $postfilter); } foreach ($_COOKIE as $key => $value) { StopAttack($key, $value, $cookiefilter); } /* * 360安全防护,防sql注入 */ function StopAttack($StrFiltKey, $StrFiltValue, $ArrFiltReq) { if (is_array($StrFiltValue)) { $StrFiltValue = implode($StrFiltValue); } if (preg_match("/" . $ArrFiltReq . "/is", $StrFiltValue) == 1) { print "notice:Illegal operation!"; exit(); } }
4.页面和页面间的衔接,如果是跳过访问一个页面,应该限制,也要对参数进行符合条件的限制判断。
原文链接:https://www.cnblogs.com/xiaoyueer/p/4744226.html
原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/18721