本文目录一览:
我做了一个留言板现在想用PHP过滤代码,应该怎么做呀?详细思路,谢谢!
function filterhtml($str)
{
$str=stripslashes($str);
$str=preg_replace("/\s+/", ' ', $str); //过滤多余回车
$str=preg_replace("/[ ]+/si",'',$str); //过滤__(""号后面带空格)
$str=preg_replace("/\!--.*?--/si",'',$str); //注释
$str=preg_replace("/(\!.*?)/si",'',$str); //过滤DOCTYPE
$str=preg_replace("/(\/?html.*?)/si",'',$str); //过滤html标签
$str=preg_replace("/(\/?head.*?)/si",'',$str); //过滤head标签
$str=preg_replace("/(\/?meta.*?)/si",'',$str); //过滤meta标签
$str=preg_replace("/(\/?body.*?)/si",'',$str); //过滤body标签
$str=preg_replace("/(\/?link.*?)/si",'',$str); //过滤link标签
$str=preg_replace("/(\/?form.*?)/si",'',$str); //过滤form标签
$str=preg_replace("/cookie/si","COOKIE",$str); //过滤COOKIE标签
$str=preg_replace("/(applet.*?)(.*?)(\/applet.*?)/si",'',$str); //过滤applet标签
$str=preg_replace("/(\/?applet.*?)/si",'',$str); //过滤applet标签
$str=preg_replace("/(style.*?)(.*?)(\/style.*?)/si",'',$str); //过滤style标签
$str=preg_replace("/(\/?style.*?)/si",'',$str); //过滤style标签
$str=preg_replace("/(title.*?)(.*?)(\/title.*?)/si",'',$str); //过滤title标签
$str=preg_replace("/(\/?title.*?)/si",'',$str); //过滤title标签
$str=preg_replace("/(object.*?)(.*?)(\/object.*?)/si",'',$str); //过滤object标签
$str=preg_replace("/(\/?objec.*?)/si",'',$str); //过滤object标签
$str=preg_replace("/(noframes.*?)(.*?)(\/noframes.*?)/si",'',$str); //过滤noframes标签
$str=preg_replace("/(\/?noframes.*?)/si",'',$str); //过滤noframes标签
$str=preg_replace("/(i?frame.*?)(.*?)(\/i?frame.*?)/si",'',$str); //过滤frame标签
$str=preg_replace("/(\/?i?frame.*?)/si",'',$str); //过滤frame标签
$str=preg_replace("/(script.*?)(.*?)(\/script.*?)/si",'',$str); //过滤script标签
$str=preg_replace("/(\/?script.*?)/si",'',$str); //过滤script标签
$str=preg_replace("/javascript/si","JAVASCRIPT",$str); //过滤script标签
$str=preg_replace("/vbscript/si","VBSCRIPT",$str); //过滤script标签
$str=preg_replace("/on([a-z]+)\s*=/si","ON\\1=",$str); //过滤script标签
$str=preg_replace("//si","#",$str); //过滤script标签,如javAsCript:alert('aabb)
$str=addslashes($str);
return($str);
}
PHP怎么过滤非法函数?
如果要达到你的目的,其实很简单,直接用htmlspecialchars函数,比如以下的代码:
$new = htmlspecialchars("script href='test' /script");
echo $new;
其中的:script href='test' /script
最终会输出:script href='test' /script
也就是会把转变为 等等。
求教ThinkPHP 有自带的防止XSS的代码么
你好,据我所知,ThinkPHP并没有自带的防止XSS的代码.不过,在PHP上,要想防止XSS,其实很简单,只需要调用一个函数即可:htmlspecialchars()
在你的要求输入字符的位置,调用htmlspecialchars()函数即可.
希望我的回答能够对你有所帮助.