标题: 2个简单的php防注射代码 [打印本页]
作者: ttmax 时间: 2006-8-14 11:38 PM 标题: 2个简单的php防注射代码
RT,看PHP有一些时间了,要是了解ASP的就会觉得PHP和它差不多.ASP大名鼎鼎的安全问题让很多人头疼,PHP虽然相对安全,但是仍然有................总结了一些.觉得可以防止一般注射了,分享给大家
injection.php
<?
/*inject check plus
函数: inject_check verify_id str_check
作用:防止过滤注入
*/
function inject_check($sql_str)
{
return eregi('seclet|insert|update|delete|\'|\/\*|\.\.\/|\.\/|union|load_file|outfile',$sql_str);
//过滤
}
function verify_id($id=null)
{
if (!$id) { exit('没有提交参数!');}//判断是否为空
elseif (inject_($id) { exit('表这样嘛,我好怕怕');}
//注射判断
$id = intval($id); //整型化
return $id
}
function str_check($str)
{
if (!get_magic_quotes_gpc())//判断get_magic_quotes_gpc是否打开
{
$str=addslashes($str);//过滤
}
$str_replace("_","\_",$str);//过滤_
$str_replace("%","\%",$str);//过滤%
return $str
}
if (inject_check($_get['id']))
{ exit('表这样嘛,我好怕怕');
}
else
{
$id= verify_id($_get['id']);
//对$id过滤
echo '表提交非法数据';
}
?>
作者: ttmax 时间: 2006-8-14 11:39 PM
简述:/*************************
说明:
判断传递的变量中是否含有非法字符
如$_POST、$_GET
功能:
防注入
**************************/
<?php
//要过滤的非法字符
$ArrFiltrate=array("'",";","union");
//出错后要跳转的url,不填则默认前一页
$StrGoUrl="";
//是否存在数组中的值
function FunStringExist($StrFiltrate,$ArrFiltrate){
foreach ($ArrFiltrate as $key=>$value){
if (eregi($value,$StrFiltrate)){
return true;
}
}
return false;
}
//合并$_POST 和 $_GET
if(function_exists(array_merge)){
$ArrPostAndGet=array_merge($HTTP_POST_VARS,$HTTP_GET_VARS);
}else{
foreach($HTTP_POST_VARS as $key=>$value){
$ArrPostAndGet[]=$value;
}
foreach($HTTP_GET_VARS as $key=>$value){
$ArrPostAndGet[]=$value;
}
}
//验证开始
foreach($ArrPostAndGet as $key=>$value){
if (FunStringExist($value,$ArrFiltrate)){
echo "<script language=\"javascript\">alert(\"非法字符\");</script>";
if (empty($StrGoUrl)){
echo "<script language=\"javascript\">history.go(-1);</script>";
}else{
echo "<script language=\"javascript\">window.location=\"".$StrGoUrl."\";</script>";
}
exit;
}
}
?>
作者: ttmax 时间: 2006-8-14 11:44 PM
申请精华
作者: ttmax 时间: 2006-8-15 05:18 PM
申请精华!
作者: conanwchen 时间: 2006-8-18 03:47 PM
不错的东西
作者: laifuer 时间: 2006-8-19 12:01 AM
强悍,支持
作者: 冰雪黑鹰 时间: 2006-8-25 03:37 PM
过滤不全
可以把字符串转换编码提交。
例如%....
作者: wbklzh 时间: 2006-8-26 08:43 AM
谢谢分享
作者: 王飞强 时间: 2006-9-12 03:26 PM
谢谢分享了
欢迎光临 梦游时光互联 (http://web.meyu.net./) |
Powered by Discuz! 4.0.0 |