|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
工具程序用来显示 Rasmus Lerdorf 的个人履历,以及统计网页流量。防注入 明天写代码的时分蓦地想到是不克不及可以经由过程一个文件来处置全部网站中一切能够呈现注入的中央停止提防呢?如许就可以够不必在每一个法式里对每一个变量停止过滤,节俭了工夫和代码。
咱们次要是从两点动身,由于咱们的获得的变量普通都是经由过程GET或POST体例提交过去的,那末咱们只需对GET和POST过去的变量停止过滤,那末就可以够到达避免注入的后果。并且咱们的PHP真长短常好,已内置了$_GET和$_POST两个数组来存储一切变量,咱们要做的任务就是过滤每一个变量就能够了。
上面看详细的代码:
/* Author: heiyeluren */
/* 过滤一切GET过去变量 */
foreach ($_GET as $get_key=>$get_var)
{
if (is_numeric($get_var))
if (is_numeric($get_var)) {
$get[strtolower($get_key)] = get_int($get_var);
} else {
$get[strtolower($get_key)] = get_str($get_var);
}
}
/* 过滤一切POST过去的变量 */
foreach ($_POST as $post_key=>$post_var)
{
if (is_numeric($post_var)) {
$post[strtolower($post_key)] = get_int($post_var);
} else {
$post[strtolower($post_key)] = get_str($post_var);
}
}
/* 过滤函数 */
//整型过滤函数
function get_int($number)
{
return intval($number);
}
//字符串型过滤函数
function get_str($string)
{
if (!get_magic_quotes_gpc()) {
return addslashes($string);
}
return $string;
}
那末咱们把以上代码放到一个公共的文件里,好比security.inc.php外面,每一个文件里都include一下这个文件,那末就可以够给任何一个法式停止提交的一切变量停止过滤了,就到达了咱们与日俱增的后果。
别的,还有一些其他的过滤办法,好比采取我之前利用的关头字过滤的办法:http://dev.csdn.net/article/71/71475.shtm
还可以参考三尺寒冰写的办法:http://www.fanghei.com/html/2005-06/20050607114008.htm
办法是分歧的,然而中心就是为了咱们的代码加倍平安。
Author: heiyeluren
Date: 2005-7-20
另外要叮嘱各位的是,抵御诱惑,ASP/PHP/JSP/.NET的对比也许会让你无所适从,你也许学了一半PHP,又开始打C#的主意,或者有人说JAVA很强,这个时候的你绝对不能动摇,哪怕你真想学。 |
|