XSS攻击可以分为三种:反射型、存储型和DOM型。
反射型XSS:
又称非持久型XSS,这种攻击方式往往具有一次性。
攻击方式:攻击者通过电子邮件等方式将包含XSS代码的恶意链接发送给目标用户。当目标用户访问该链接时,服务器接收该目标用户的请求并进行处理,然后服务器把带有XSS代码的数据发送给目标用户的浏览器,浏览器解析这段带有XSS代码的恶意脚本后,就会触发XSS漏洞。
存储型XSS:
存储型XSS又称持久型XSS,攻击脚本将被永久地存放在目标服务器的数据库或文件中,具有很高的隐蔽性。
攻击方式:这种攻击多见于论坛、博客和留言板,攻击者在发帖的过程中,将恶意脚本连同正常信息一起注入帖子的内容中。随着帖子被服务器保存下来,恶意脚本也永久地被存放在服务器的后端存储器中。当其他用户浏览这个被注入了恶意脚本的帖子时,恶意脚本会在他们的浏览器中得到执行。
DOM型XSS
DOM全称Document Object Model,使用DOM可以使程序和脚本能够动态访问和更新文档内容、结构及样式。
DOM型XSS其实是一种特殊类型的反射型XSS,它是基于DOM文档对象模型的一种漏洞。
HTML的标签都是节点,而这些节点组成了DOM的整体结构——节点树。通过HTML DOM,树中所有节点均可通过JavaScript进行访问。所有HTML(节点)均可被修改,也可以创建或删除节点。
防御xss攻击需要重点掌握以下原则:
在将不可信数据插入到HTML标签之间时,对这些数据进行HTML Entity编码。
在将不可信数据插入到HTML属性里时,对这些数据进行HTML属性编码。
在将不可信数据插入到SCRIPT里时,对这些数据进行SCRIPT编码。
在将不可信数据插入到Style属性里时,对这些数据进行CSS编码。
在将不可信数据插入到HTML URL里时,对这些数据进行URL编码。
使用富文本时,使用XSS规则引擎进行编码过滤
XSS攻击,即跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,XSS是一种经常出现在web应用中的计算机安全。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)