XSS漏洞是经过URL带入的,这种带入主要是前端解析url中的参数,并对数参数执行了innerHTML或者html或者append操做。在将参数html()或者append()到html文件中时,会执行其中的js代码,被错误用户获取到cookie等信息。javascript
原始连接: https://xx.xxx.com/index.html?nick=aa 被xss注入以后的连接: https://xx.xxx.com/index.html?nick=qqqa<img src=1 onerror=alert(document.cookie)> xss漏洞修复: function filterXss(str, regExp){ // var regex = /<(\S*?)[^>]*>.*?|<.*? \/>/gi; // 去除包含<>内容的,防止xss漏洞 var filterValue = str.replace(/<.*?>/g,''); // 去除<开头类型的xss漏洞 filterValue = str.replace(/<+.*$/g,''); if(regExp && !regExp.test(filterValue)){ filterValue = ''; } return filterValue; }
修复方式:
对URL中的参数包含<>标签的内容进行过滤,防止任何js代码执行的可能性。同时能够对带有url的参数(好比用户的头像图片连接)进行域名限制,经过域名限制能够不须要再过滤类型,只须要限制域名,由于这里用户有可能输入了一些能够下载内容的URL,让用户下载一些并不须要的东西,此时过滤域名最安全。html
csrf是经过仿造客户端的请求获取信息的,对于jsonp的请求,客户端确实能够仿造,可是由于对于ajax的请求,有同源策略限制,已经作了域名过滤,因此通常不会有问题。前端
修复方案:java
refer指向原则:ajax