标题:快速对字符转义,避免跨站攻击XSS 出处:刘新修 时间:Fri, 22 May 2020 18:45:48 +0000 作者:刘新修 地址:http://liuxinxiu.com:80/s/299/ 内容: XSS已经成为非常流行的网站攻击方式,为了安全起见,尽量避免用户的输入。可是有些情况下不仅不避免,反而要求鼓励输入,比如写博客。博客园开放性很高,可以运行手写的JS。之前比较著名的例子就是,凡是看到某一篇文章的,都自动关注他。 如果避免跨站攻击的话,我们就得对用户的输入,进行转义。例如。如果直接保存这个字符串的话,然后再输出的话,就会运行JS了。我们需要将这个字符串转义成"<script type='text/javascript'>alert('hello world')</script>"。 转义,就是一个个字符的匹配,然后转换。看着不难,但是需要转义的字符也不少。另外当字符数量大的时候,效率成为一个问题。下面我写一个函数,让浏览器底层帮我们做到。 JavaScript代码 function stringEncode(str){ var div=document.createElement('div'); if(div.innerText){ div.innerText=str; }else{ div.textContent=str;//Support firefox } return div.innerHTML; } Generated by Bo-blog 2.1.1 Release