查看: 1293|回复: 25

快速对字符编码,避免跨站攻击XSS

[复制链接]
发表于 2013-11-28 10:50:49 | 显示全部楼层 |阅读模式
XSS已经成为非常流行的网站攻击方式,为了安全起见,尽量避免用户的输入。可是有些情况下不仅不避免,反而要求鼓励输入,比如写博客。博客园开放性很高,可以运行手写的JS。之前比较著名的例子就是,凡是看到某一篇文章的,都自动关注他。
    如果避免跨站攻击的话,我们就得对用户的输入,进行转义。例如<script type='text/javascript'>alert('hello world')</script>。如果直接保存这个字符串的话,然后再输出的话,就会运行JS了。我们需要将这个字符串转义成"<script type='text/javascript'>alert('hello world')</script>"。
    编码,就是一个个字符的匹配,然后转换。看着不难,但是需要转义的字符也不少。另外当字符数量大的时候,效率成为一个问题。下面我写一个函数,让浏览器底层帮我们做到。
function stringEncode(str){ var div=document.createElement('div'); if(div.innerText){
            div.innerText=str;
        }else{
            div.textContent=str;//Support firefox } return div.innerHTML;
   }

发表于 2013-11-29 12:26:14 | 显示全部楼层
又看了一次  
发表于 2013-11-30 05:54:09 | 显示全部楼层
dddddddddddddd  
发表于 2013-11-30 11:16:30 | 显示全部楼层
不错不错,我喜欢看  
发表于 2013-12-3 05:21:34 | 显示全部楼层
不对,就是碗是铁的,里边没饭你吃啥去?  
发表于 2013-12-3 23:40:16 | 显示全部楼层
楼主的内容不管你信不信,反正我信了
发表于 2013-12-5 10:08:41 | 显示全部楼层
不错啊! 一个字牛啊!  
发表于 2013-12-5 11:36:05 | 显示全部楼层
不错,看看。  
发表于 2013-12-6 02:27:57 | 显示全部楼层
希望大家都有好运  
发表于 2013-12-6 03:25:26 | 显示全部楼层
声明一下:本人看贴和回贴的规则,好贴必看,精华贴必回。  
高级模式
B Color Image Link Quote Code Smilies

本版积分规则