8.20 web网站安全

前些天由于短信接口没有机密,遭到了无聊人士的攻击,不停地掉接口发短信。给我们敲了警钟,应该注意网站安全了。

1.重要接口的加密处理(hash通过验证码来产生)

2.对ip、手机号等数据做限制

function getMobileCount($mobile, $time = 1) {
    if ($time == 1) {
        $time = strtotime(date("Y-m-d"));
    }
    $sql = "select count(*) AS total from table_log where mobile='$mobile' and created_at>'$time'";
    $result = M("table_log")->query($sql);
    return $result[0]['total'];
}

function getMobileCountByIP($ip) {
    $time = strtotime(date("Y-m-d"));
    $sql = "select count(*) AS total from table_log where ip='$ip' and created_at>'$time'";
    $result = M("table_log")->query($sql);
    return $result[0]['total'];
}

 

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.页面和页面间的衔接,如果是跳过访问一个页面,应该限制,也要对参数进行符合条件的限制判断。

posted @ 2015-08-20 10:02  笑月儿  Views(213)  Comments(0)    收藏  举报