PHP防注入和XSS攻击通用过滤规则
放在index.php头部.
<?php
//php防注入和XSS攻击通用过滤.
$_GET && SafeFilter($_GET);
$_POST && SafeFilter($_POST);
$_COOKIE && SafeFilter($_COOKIE);
function SafeFilter (&$arr){
$ra=Array('/([\x00-\x08,\x0b-\x0c,\x0e-\x19])/','/script/','/javascript/','/vbscript/','/expression/','/applet/','/meta/','/xml/','/blink/','/link/','/style/','/embed/','/object/','/frame/','/layer/','/title/','/bgsound/','/base/','/onload/','/onunload/','/onchange/','/onsubmit/','/onreset/','/onselect/','/onblur/','/onfocus/','/onabort/','/onkeydown/','/onkeypress/','/onkeyup/','/onclick/','/ondblclick/','/onmousedown/','/onmousemove/','/onmouseout/','/onmouseover/','/onmouseup/','/onunload/');
if (is_array($arr)){
foreach ($arr as $key => $value){
if(!is_array($value)){
if (!get_magic_quotes_gpc()){ //不对magic_quotes_gpc转义过的字符使用addslashes(),避免双重转义。
$value=addslashes($value); //给单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符)加上反斜线转义
}
$value=preg_replace($ra,'',$value); //删除非打印字符,粗暴式过滤xss可疑字符串
$arr[$key] = htmlentities(strip_tags($value)); //去除 HTML 和 PHP 标记并转换为 HTML 实体
}else{
SafeFilter($arr[$key]);
}
}
}
}
这个页面 实在地 打开世界。保持方向!
我珍视, 这里分享真实经验。你的网站 就是 正是这样的。干得好。
阅读你的博客, 我看出, 各国更亲近。感谢 旅行气氛。
我经常阅读 关于旅行的资源。太棒了学到新知识。
吸引人的 旅游杂志, 加油 充满灵感。感谢!
关注更新, 我看出, 旅行带来灵感。无限感谢 旅行气氛。
我热爱, 充满真情实感。你的项目 就是 最好的例子。请继续。
我总是关注 度假栏目。超级棒找到这样的文章。
吸引人的 在线导览, 坚持下去 保持热情。十分感谢.
我关注你们的更新 旅行页面。增长见识掌握出行细节。