如何用PHP阻止XSS攻击及XSS攻击原理讲解
XSS也叫CSS,全称是十字网站脚本攻击。XSS攻击类似于SQL注入攻击,是Web程序中常见的漏洞。XSS是一种针对客户的被动攻击方式,其危害性很容易被忽视。原理是攻击者将恶意的HTML代码输入(引入)具有XSS漏洞的网站,当用户浏览该网站时,该HTML代码会自动执行,从而达到攻击的目的。比如窃取用户Cookie信息、破坏页面结构、重定向到其他网站等。
理论上,只要有可以提供输入的表单,并且没有安全过滤或者过滤不完全,就可能存在XSS漏洞。
以下是XSS输入的一些最简单、最常见的恶意字符:
1.XSS输入通常包含JavaScript脚本,如恶意警告框:script alert(' XSS ');/script
2.XSS输入也可以是HTML代码段,例如:
(1).网页不断刷新元http-equiv=“刷新”内容=“0(2)嵌入其他网站的链接iframe src=http://xxxx width=250 height=250/iframe不仅可以通过正常渠道输入XSS攻击字符,还可以绕过JavaScript验证,通过修改请求实现XSS攻击,如下图所示:
在了解了XSS攻击的原理和危害之后,就不难阻止它了。下面是一个简单的防止XSS攻击的PHP函数:
?PHP/* * * @ param $ string * @ param $低安全级别低*/函数clean _ XSS ($ string,$ low=false) {if(!is _ array($ string)){ $ string=trim($ string);$ string=strip _ tags($ string);$ string=html specialchars($ string);if ($low) {返回True} $string=str_replace(数组(“”、“\\”、“”、“/”、“.”, './', './','//'),'',$ 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);返回真;} $ keys=array _ keys($ string);foreach($ key as $ key){ clean _ XSS($ string[$ key]);} }//只是一个测试$ str=' codetc.commeta http-equiv=' refresh '内容=' 0;'';clean _ XSS($ str);//如果你把这个注释掉,你就会知道xss攻击是如此强大,以至于echo $ str?PHP中的设置
PHP 5.2及以上版本已经支持设置HttpOnly参数,也支持设置全局HttpOnly。在PHP5.2 ini中,
-会话。Cookie _ HttpOnly=-。
?PHP ini _ set(' session . cookie _ http only ',1);//或session_set_cookie_params(0,NULL,NULL,NULL,TRUE);Cookie操作函数setcookie函数和setrawcookie函数还专门添加了第七个参数作为HttpOnly选项,打开方法是:
?php setcookie('abc ',' test ',NULL,NULL,NULL,NULL,TRUE);setrawcookie('abc ',' test ',NULL,NULL,NULL,NULL,TRUE);别说老版本的PHP了。没有生意。
摘要
以上就是本文的全部内容。希望本文的内容对大家的学习或工作有一定的参考价值。谢谢你的支持。如果你想了解更多,请查看下面的相关链接
版权声明:如何用PHP阻止XSS攻击及XSS攻击原理讲解是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。