一、什么是xss攻击
XSS即(Cross Site Scripting)中文名称为:跨站脚本攻击。XSS的重点不在于跨站点,而在于脚本的执行。那么XSS的原理是:恶意攻击者在web页面中会插入一些恶意的script代码。当用户浏览该页面的时候,那么嵌入到web页面中script代码会执行,因此会达到恶意攻击用户的目的。
二、xss攻击的种类及防御方式
XSS攻击最主要有如下分类:反射型、存储型、及DOM-based型。反射性和DOM-baseed型可以归类为非持久性XSS攻击。存储型可以归类为持久性XSS攻击。
1、反射性XSS
反射性XSS的原理是:反射性xss一般指攻击者通过特定的方式来诱惑受害者去访问一个包含恶意代码的URL。当受害者点击恶意链接url的时候,恶意代码会直接在受害者的主机上的浏览器执行。常见的反射性XSS有哪些?常见的是恶意链接。
2、存储性XSS
存储型XSS的原理是:主要是将恶意代码上传或存储到服务器中,下次只要受害者浏览包含此恶意代码的页面就会执行恶意代码。
如何防范?后端需要对提交的数据进行过滤。前端也可以做一下处理方式,比如对script标签,将特殊字符替换成HTML编码这些等。
3、DOM-based型XSS
DOM XSS是基于文档对象模型的XSS。
一般有如下DOM操作:使用document.write直接输出数据。使用innerHTML直接输出数据。使用location、location.href、location.replace、iframe.src、document.referer、window.name等这些。
4、SQL注入
SQL注入是通过客户端的输入把SQL命令注入到一个应用的数据库中,从而执行恶意的SQL语句。