防止XSS跨站攻击

什么是XSS跨站攻击?

例如在某个链接有GET的情况下如index.php?name=<script>alert(111);</script>。页面加载会出现警告框

避免如类问题,主要是html和js去标签化。然后在接收数据的时候,进行去标签。

1、创建一个PHP文件如clean_xss.php,代码如下

function clean_xss(&$string, $low = False){
	if (! is_array ( $string )) {
		$string = trim ( $string );
		$string = strip_tags ( $string );
		$string = htmlspecialchars ( $string );
		if ($low){
			return $string;
		}
		$string = str_replace ( array ('"', "\\", "'", "/", "..", "../", "./", "//" ), '', $string );
		$no = '/%0[0-8bcef]/';
		$string = preg_replace ( $no, '', $string );
		$no = '/%1[0-9a-f]/';
		$string = preg_replace ( $no, '', $string );
		$no = '/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]+/S';
		$string = preg_replace ( $no, '', $string );
			return $string;
	}
	$keys = array_keys ( $string );
	foreach ( $keys as $key ){
		clean_xss ( $string [$key] );
	}
} 

php.ini 添加auto_prepend_file = “E:\wamp\www\*****\ clean_xss .php”

在处理POST、GET的时候,clean_xxs($_POST)。完成