1、什么是XSS攻击
XSS又称为CSS(Cross SiteScript),跨站脚本攻击。其原理是攻击者向有XSS漏洞的网站中“嵌入”恶意的HTML代码,当其他用户浏览该网站时,这段HTML代码会自动执行,从而达到攻击的目的。如:盗取用户Cookie、重定向到其他网站等。
理论上,所有可以输入的地方没有对输入数据进行处理的话,都会存在XSS漏洞。漏洞的厉害取决于攻击代码的能力。
2、XSS攻击常见危害
(1)、网站钓鱼、网页挂马,包括盗取各类用户账号。
(2)、获取用户Cookie资料,从而获取用户隐私信息。
(3)、获取客户端信息,如用户的浏览历史、真实IP等。
(4)、强制弹出广告页面等。
(5)、进行大量的客户端攻击,如DDoS攻击。
。。。。。。
3、XSS攻击防范方案
(1)相对完整的输入过滤体系。
凡是有输入的地方,必须得对非法字符做过滤处理。
过滤”<”和”>”等标记,如果HTML内容中有针对某些不能严格过滤的字符,则要对这些标签进行转义处理。(如将”<”转义为”<”)
过滤特殊字符:&、回车和空格等。
关于常用的一些字符串过滤方案,我们可以写一个常用的过滤器(filter)去执行。这里有一篇相关博文可以借鉴。http://blog.csdn.net/catoop/article/details/50338259
(2)web表单做各类输入校验
表单中的各项输入分别在客户端和服务器端做相关正则表达式的校验,避免非法字符的输入。
(3)输出检查
除了(1)和(2)中的常见输入检查以外,还需要对输出的变量进行编码处理(htmlencode)或者对一些输出内容进行转义操作(escape等)。还有对富文本的内容要进行严格输出,因为富文本中的插入图片或者代码的标签比较多,应该严格控制标签的输出。
时间: 2024-10-05 07:28:42