当前位置:首页 > PHP教程 >

php xss过滤函数

发布时间:2023-12-24 12:54:00 作者:佚名 阅读:(12)

作为一个网站开发者,你经常会遇到各种各样的攻击,最常见的一种就是XSS攻击。接下来,云梦编程将介绍PHP过滤XSS攻击的常用方法。有需要的朋友可以参考一下:

php xss过滤函数

1、描述:

XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。

2、过滤方法:

/**
* xss过滤函数
* @param $string
* @return string
*/
function remove_xss($string) {
	$string = preg_replace('/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]+/S', '', $string);
	$parm1 = Array('javascript', 'vbscript', 'expression', 'applet', 'meta', 'xml', 'blink', 'link', 'script', 'embed', 'object', 'iframe', 'frame', 'frameset', 'ilayer', 'layer', 'bgsound', 'title', 'base');
	$parm2 = Array('onabort', 'onactivate', 'onafterprint', 'onafterupdate', 'onbeforeactivate', 'onbeforecopy', 'onbeforecut', 'onbeforedeactivate', 'onbeforeeditfocus', 'onbeforepaste', 'onbeforeprint', 'onbeforeunload', 'onbeforeupdate', 'onblur', 'onbounce', 'oncellchange', 'onchange', 'onclick', 'oncontextmenu', 'oncontrolselect', 'oncopy', 'oncut', 'ondataavailable', 'ondatasetchanged', 'ondatasetcomplete', 'ondblclick', 'ondeactivate', 'ondrag', 'ondragend', 'ondragenter', 'ondragleave', 'ondragover', 'ondragstart', 'ondrop', 'onerror', 'onerrorupdate', 'onfilterchange', 'onfinish', 'onfocus', 'onfocusin', 'onfocusout', 'onhelp', 'onkeydown', 'onkeypress', 'onkeyup', 'onlayoutcomplete', 'onload', 'onlosecapture', 'onmousedown', 'onmouseenter', 'onmouseleave', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'onmousewheel', 'onmove', 'onmoveend', 'onmovestart', 'onpaste', 'onpropertychange', 'onreadystatechange', 'onreset', 'onresize', 'onresizeend', 'onresizestart', 'onrowenter', 'onrowexit', 'onrowsdelete', 'onrowsinserted', 'onscroll', 'onselect', 'onselectionchange', 'onselectstart', 'onstart', 'onstop', 'onsubmit', 'onunload');
	$parm = array_merge($parm1, $parm2);
	for ($i = 0; $i < sizeof($parm); $i++) {
	    $pattern = '/';
	    for ($j = 0; $j < strlen($parm[$i]); $j++) {
		if ($j > 0) {
		    $pattern .= '(';
		    $pattern .= '(&#[x|X]0([9][a][b]);?)?';
		    $pattern .= '|(�([9][10][13]);?)?';
		    $pattern .= ')?';
		}
		$pattern .= $parm[$i][$j];
	    }
	    $pattern .= '/i';
	    $string = preg_replace($pattern, ' ', $string);
	}
	return $string;
}


以上就是云梦编程为大家介绍的关于PHP过滤XSS攻击的函数,了解更多相关文章请关注云梦编程网!

© 2023 - 云梦编程网 版权所有 鲁ICP备2021017318号-4