用php过滤危险html代码的函数

yipeiwu_com6年前PHP代码库
#用户发布的html,过滤危险代码 
function uh($str) 

$farr = array( 
"/\\s+/", //过滤多余的空白 
"/<(\\/?)(scrīpt|i?frame|style|html|body|title|link|meta|\\?|\\%)([^>]*?)>/isU", //过滤 <scrīpt 等可能引入恶意内容或恶意改变显示布局的代码,如果不需要插入flash等,还可以加入<object的过滤 
"/(<[^>]*)on[a-zA-Z]+\\s*=([^>]*>)/isU", //过滤javascrīpt的on事件 

); 
$tarr = array( 
" ", 
"<\\\\1\\\\2\\\\3>", //如果要直接清除不安全的标签,这里可以留空 
"\\\\1\\\\2", 
); 

$str = preg_replace( $farr,$tarr,$str); 
return $str; 
}

相关文章

PHP中通过语义URL防止网站被攻击的方法分享

什么是语义URL 攻击? 好奇心是很多攻击者的主要动机,语义URL 攻击就是一个很好的例子。此类攻击主要包括对URL 进行编辑以期发现一些有趣的事情。 例如,如果用户chris 点击了你...

php curl 获取https请求的2种方法

今天一个同事反映,使用curl发起https请求的时候报错:“SSL certificate problem, verify that the CA cert is OK. Detail...

php empty,isset,is_null判断比较(差异与异同)

php empty,isset,is_null判断比较(差异与异同)

一、举例说明 A.一个变量没有定义,我们该怎么样去判断呢 复制代码 代码如下: <?php #不存在$test 变量 $isset= isset($test)?"test is d...

php中显示数组与对象的实现代码

1、 使用 print_r ( $array/$var ) print 是打印的意思,而r则取自Array的单词,那么该函数的功能就是打印数组内容,它既可以打印数组内容,也可以打印普通的...

在windows平台上构建自己的PHP实现方法(仅适用于php5.2)

构建步骤1, 安装vs20082, 安装windows sdk 6.13, 下载php 5.2源码,可以从此处获取Releases (先不要解压)4, 下载bindlib_w32.zip...