XSS即跨站脚本工具
例如我在你的评论上写了
然后很有可能就会弹出楼主傻逼了,当然这只是恶作剧,但要是别人在你的获取cookie就很严重了,如下
通过这种方式,你的所有cookie就会被发送到对应的网站去,然后你就呵呵了~~~~
所以我们应该要过滤掉这些脚本,方法如下:(只能过滤部分)
// 注意:htmlentities()默认编码为 ISO-8859-1,如果你的非法脚本编码为其它,那么可能无法过滤掉,同时浏览器却可以识别和执行.这个问题我先找几个站点测试后再说.
// 以下是一个过滤非法脚本的函数,仅供参考: -->
function RemoveXSS($val) {
$val = preg_replace("/((\biframe\b)|(\bhref\b)|(\bsrc\b)|(\bvbscript\b)|(\bexpression\b)|(\bapplet\b)|(\bmeta\b)|(\bframeset\b))/i", "", $val);
$val = preg_replace("/
// straight replacements, the user should never need these since they"re normal characters
$search = "abcdefghijklmnopqrstuvwxyz";
$search .="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$search .= "1234567890!@#$%^&*()";
$search .= "~`;:?+/={}[]-_|\"";
for ($i = 0; $i < strlen($search); $i++) {
$val = preg_replace("/([x|X]0{0,8}".dechex(ord($search[$i])).";?)/i", $search[$i], $val); // with a ;
$val = preg_replace("/(�{0,8}".ord($search[$i]).";?)/", $search[$i], $val); // with a ;
}
// 剥去字符串中的 HTML 标签:strip_tags
$val = strip_tags(htmlspecialchars_decode($val));
return $val;
}
//使用方法*********************************************************************
//*****************************************************************************
echo RemoveXss("我建议你去你那里玩http://www.baidu.com javascript hrefd iframe");