跨站脚本攻击xss。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页,嵌入其中的Web里面的Script代码会被执行,从而获取信息达到攻击目的。
Session & Cookie
Session与Cookie的最大区别就是一个存储在服务器端,一个存储在客户端。
1、cookie数据存放在客户的浏览器上,session数据放在服务器上。
2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗。
考虑到安全应当使用session。
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能。
考虑到减轻服务器性能方面,应当使用COOKIE。
4、单个cookie保存的数据不能超过4k,很多浏览器都限制一个站点最多保存20个cookie。
XSS的利用过程–获取其他用户的Cookie
需要掌握简单的JS语法以及了解
- 列表内容
- JS基本语法
- Document对象
- Window对象
- Ajax请求
XSS分类
- 反射性
又是非持久性的,非持久型xss攻击是一次性的,仅对当次的页面访问产生影响。非持久型xss攻击要求用户访问一个被攻击者篡改后的链接,用户访问该链接时,被植入的攻击脚本被用户游览器执行,从而达到攻击目的。通常,黑客先将恶意代码写好,然后将连接发给受害者,受害者只要点击就会出现攻击现象 - 存储型
持久性的,会把用户输入的数据存储到数据库中。例如,留言板等。只要用户进入页面代码将会执行 - DOM XSS
DOM型与前两者的差别是,只在客户端进行解析,不需要服务器的解析响应
基于文档模型(DOM)造成的XSS攻击。
由于文档的某些输入、输出点没有做过滤,攻击者可以插入JavaScript代码,从而在客户端执行,造成了XSS跨站攻击。
关于XSS的几个小技巧
Payload 1:eval(“alert(1)”);
Payload 2:document.write(““);
Payload 3:document.write(“16进制或宽字节”);
……
当浏览器未返回页面编码的情况下,我们可以采用UTF-7编码
XSS / CSRF 如何防御
- XSS
过滤 < > & # ” ’ // /* 等等 - CSRF
1、验证码
2、验证Referer
3、Token
4、设置跨域权限