QQ 1640076782

2014年09月30日

如何解决php网站360安全卫士显示sql盲注漏洞

Filed under: phper — phpwang @ 10:07 上午

很多网站为了防护安全,都安装了360网站安全检测工具,来及时的检测网站安全出现的问题。对于出现的问题,有时候360会给出解决方案,但是有的时候却没有。

对于如上图所示的问题,我总结了一下方法,下面简单的介绍下。

针对sql盲注问题,一般来说就是对用户输入的数据没有进行一个过滤和防护。

1、写函数控制sql注入:

function GetVariable(strVariableName)

if IsEmpty(Trim(Request(strVariableName))) then

GetVariable=empty

exit Function

end if

GetVariable=Replace(Trim(Request(strVariableName)),”‘”,”””)

GetVariable=Replace(GetVariable,”=”,”")

GetVariable=Replace(GetVariable,”–”,”")

end function

2、过滤用户输入的参数

/*****参数过滤****/

<?php

function post_check($post)

{

if (!get_magic_quotes_gpc()) // 判断magic_quotes_gpc是否为打开

{

$post = addslashes($post); // 进行magic_quotes_gpc没有打开的情况对提交数据的过滤

}

$post = str_replace(“_”, “_”, $post); // 把 ‘_’过滤掉

$post = str_replace(“%”, “%”, $post); // 把’ % ‘过滤掉

$post = nl2br($post); // 回车转换

$post= htmlspecialchars($post); // html标记转换

return $post;

}

?>

/*****参数过滤****/

其中第二种方法的思路就是先判断php 指令的magic_quotes_qpc是否为on,然后在对所有的GET,POST,COOKIES等数据自动运行addslashes()。对post表单中获取的用户输入的数据进行一个过滤。

其中我用的是第二种方法,主要是一个php函数实现的效果。相信这个方法也同样适用于所有的php类型的网站。