• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

php之防注入程序绕过浅谈

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

<?php
/*判断传递的变量是否含有非法字符
如:$_POST/$_GET
功能:SQL防注入系统
*/

//屏蔽错误提示
error_reporting(7);

//需要过滤的字符

$ArrFiltrate = array("'", "or", "and", "union", "where"); //1.如果规则不完全,也会引起安全问题

//出错跳转的URL
$StrGoUrl = ""; //2.如果此处不初始化,且register_globals = On,就会产生变量覆盖漏洞(php4.2.0之前默认register_globals = On)

//防注入函数
function FunStringExist($StrFiltrate, $ArrFiltrate)
{
foreach ($ArrFiltrate as $key => $value)
{
if (stristr($value, $StrFiltrate)) //3.保证or/Or/oR/OR之类的提交不会成功(这是个比较安全的防止SQL注入的函数,现对于strstr()函数而言)
{
return true;
}
}

return false;
}

//合并$_POST && $_GET
if (function_exists(array_merge))
{
$ArrPostAndGet = array_merge ($_POST, $_GET);
}
else
{
//手动合并$_POST
foreach ($_POST as $key => $value)
{
$ArrPostAndGet[] = $value;
}

//手动合并$_GET
foreach ($_GET as $key => $value)
{
$ArrPostAndGet[] = $value;
}
}

//调用防注入函数
foreach ($ArrPostAndGet as $key => $value)
{
if (FunStringExist ($value, $ArrFiltrate))
{
echo "<script>alert('非法字符');</script>";

if (empty($StrGoUrl))
{
echo "<script>history.go(-1);</script>";
}
else
{
echo "<script>window.location = '".$StrGoUrl."'</script>";
}

exit(0);
}
}
?>


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
php捕获异常方法发布时间:2022-07-10
下一篇:
php判断远程图片或文件是否存在发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap