XSS攻击
原理
跨站脚本攻击XSS(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,将跨站脚本攻击缩写为XSS。
原理为恶意攻击者在网页中构造恶意javascript脚本,用户浏览该页面时,嵌入网页里面的语句会被执行,从而达到恶意攻击的目的
类型
反射型:
发出请求时,XSS脚本存在于在URL中,作为输入提交到服务器端,服务器解析后响应,XSS代码随响应内容一起传回给浏览器,最后浏览器解析执行XSS代码
存储型:
存储型XSS存放于服务器端,恶意用户提交的代码会存储在服务器端(数据库,内存等),常见于留言板,论坛等,用户请求目标页面时不用再提交。
防御
1、转义、过滤敏感字符
对于引号、尖括号、斜杠 或者其他敏感的javascript关键字进行转义(黑名单)。缺点是会存在一些意向不到的绕过方式
2、Httponly 设置cookie时,将其 属性设为HttpOnly,就可以避免该网页的cookie被客户端恶意JavaScript窃取,是目前保护用户 cookie信息最有效的一种方式
绕过
关键字大小写、嵌套、双写、换事件、html实体编码等
一些绕过方式