前端如何处理xss 跨域攻击

ppylox
·3/8/2021·0 阅读
AI 摘要模型根据正文自动生成,仅供参考

XSS通常由后端转码或转义用户输入来防御,前端也可做简单处理:将输入内容转为字符串再提交。文中给出htmlEncode函数,原理是创建临时div,用textContent或innerText接收数据,再返回innerHTML,从而将`<script>`等标签转义为字符串,降低XSS风险。

\n

一般情况下,xss是由后端做处理,即把用户输入的内容进行转码或转义变成字符串进行保存,这样即使被别有用心的人输入了一些攻击代码,经过处理后都会变成字符串,那么前端也可以做一些简单处理,即把用户输入的内容转成字符串在进行提交。

\n\n\n\n

function htmlEncode(html) { 

\n\n\n\n

var temp = document.createElement ("div");   

\n\n\n\n

(temp.textContent != null) ? (temp.textContent = html) : (temp.innerText = html);   

\n\n\n\n

var output = temp.innerHTML;   

\n\n\n\n

temp = null;   

\n\n\n\n

return output;

\n\n\n\n

  }

\n\n\n\n

htmlEncode("<script>alert(222)</script>")

\n\n\n\n

原理,在页面创建一个临时dom,把要处理的数据赋值给它。用innerText接收。再return innerHTML;

\n

相关文章

评论 (0)

暂无评论,来写第一条吧