XSS 全称为 Cross Site Scripting,用户在表单中有意或无意输入一些恶意字符,从而破坏页面的表现!
看看常见的恶意字符XSS 输入:
1.XSS 输入通常包含 JavaScript 脚本,如弹出恶意警告框:<script>alert("XSS");</script>
2.XSS 输入也可能是 HTML 代码段,譬如:
(1).网页不停地刷新 <meta http-equiv="refresh" content="0;">
(2).嵌入其它网站的链接 <iframe src=http://xxxx width=250 height=250></iframe>
???<?PHP ???/** ????* @blog http://www.phpddt.com ????* @param $string ????* @param $low 安全别级低 ????*/ ???function clean_xss(&$string, $low = False) ???{ ???????if (! is_array ( $string )) ???????{ ???????????$string = trim ( $string ); ???????????$string = strip_tags ( $string ); ???????????$string = htmlspecialchars ( $string ); ???????????if ($low) ???????????{ ???????????????return True; ???????????} ???????????$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 True; ???????} ???????$keys = array_keys ( $string ); ???????foreach ( $keys as $key ) ???????{ ???????????clean_xss ( $string [$key] ); ???????} ???} ???//just a test ???$str = ‘phpddt.com<meta http-equiv="refresh" content="0;">‘; ???clean_xss($str); //如果你把这个注释掉,你就知道xss攻击的厉害了 ???echo $str; ????>
PHP 防范xss攻击(转载)
原文地址:http://www.cnblogs.com/tomcuper/p/7773271.html