XSS漏洞是指对dom操作时,出现特殊字符造成的安全泄露。
XSS漏洞分三类:1:储存型XSS;2:反射型XSS;3.基于Dom,储存型危险很大,它在服务器储存嵌入的恶意代码,如果用户打开含有恶意代码的页面。很容易引起传播;基于Dom是直接把页面劫持,修改页面的数据。
XSS漏洞的主要来源有:
1.URL(需要对url进行encodeURIComponent转码)。
2.数据请求和响应
3.数据输入
解析XSS漏洞的方案之一是过滤掉特殊字符,操作字符串时转码,后端解析即可。之二是使用CSP头可以禁止加载第三方资源和向第三方提交数据;如果不想JS读取到cookie信息,在该cookie的字段设置httponly。
//把&、<、>、“、'转换成html编码。 function xss(e){ return String(e).replace(/&/g, "&") .replace(/</g, "<") .replace(/>/g, ">") .replace(/"/g, """) .replace(/'/g, "'"); }