一.什么是xss攻击
XSS是跨站脚本攻击(Cross Site Scripting)。攻击者往 web 页面里插入恶意的 HTML 代码(Javascript、css、html 标签等),当用户浏览该页面时,嵌入其中的 HTML 代码会被执行,从而达到恶意攻击用户的目的。如盗取用户 cookie 执行一系列操作,破坏页面结构、重定向到其他网站等。
二.防范XSS攻击
这里主要是项目中遇到了要防止简单的html编码攻击
-
防御HTML编码
在项目中会出现这样的情况,在表单的输入框中上传信息,后台接收到数据后会回显上传的信息,也就是前端上传到后台的数据需要在其他页面进行回显。如果遇到了XSS攻击,该攻击在输入框中输入了可执行的html代码比如<img src = "a" onerror = "XSS攻击"></img>
,可以发现如果图片的src路径找不到该图片,就执行onerrpr的代码,代码可能就是XSS攻击,如果上传的是一些script代码,该脚本也会被解析并执行。
所以一些不可信的标签的插入时应该进行转码:function htmlEncode(str) { var s = ''; if (str.length === 0) { return s; } return (s + str) .replace(/&/g, "&") .replace(/</g, "<") .replace(/>/g, ">") .replace(/ /g, " ") .replace(/\'/g, "'") .replace(/\"/g, """) .replace(/\//g, '/'); }
网友评论