PHP过滤用户宣布的信息中的危险代码

#用户宣布的带有html的信息,怎么利用PHP过滤危险代码 以下是php源码

<?php function uh($str) { $farr = array( "/\s+/", "/< (\/?)(script|i?frame|style|html|body|title|link|meta|\?|\%) ([^>]*?)>/isU", "/(<[^>]*)on[a-zA-Z]+\s*=([^>]*>)/isU", ); $tarr = array( " ", "<\\1\\2\\3>", "\\1\\2", ); $str = preg_replace( $farr,$tarr,$str); return $str; } ?>

(以下为正则内容,假如您只是想要成果源码可以不消看以下内容)

正则表达式教程:

/\s+/    为过滤多余的空缺 \s是空缺 也是空格 这句是一个空格以上

/< (\/?)(script|i?frame|style|html|body|title|link|meta|\?|\%) ([^>]*?)>/isU

过滤 <script 等大概引入恶意内容或恶意改变显示机关的代码,假如不需要插入 flash等,还可以插手<object的过滤

/(<[^>]*)on[a-zA-Z]+\s*=([^>]*>)/isU

过滤javascript的on事件

$tarr数组是 替换后的内容

"",   对付第1个 正则表达式 多余的空格替换为空(删除空格,这样说才大白)
    "<\\1\\2\\3>",   script 等标签的“<”和“>”标记换成中文的〈和〉。假如要直接排除不安详的标签,这里可以留空
    "\\1\\2",   //过滤javascript的on事件 好比:<a onclick=“show()”> 换成 <a>  ,简朴来说是去掉onXXXX的事件

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/7994.html