快速對字符轉義,避免跨站攻擊XSS

    XSS已經成爲很是流行的網站攻擊方式,爲了安全起見,儘可能避免用戶的輸入。但是有些狀況下不只不避免,反而要求鼓勵輸入,好比寫博客。博客園開放性很高,能夠運行手寫的JS。以前比較著名的例子就是,凡是看到某一篇文章的,都自動關注他。 javascript

    若是避免跨站攻擊的話,咱們就得對用戶的輸入,進行轉義。例如<script type='text/javascript'>alert('hello world')</script>。若是直接保存這個字符串的話,而後再輸出的話,就會運行JS了。咱們須要將這個字符串轉義成"&lt;script type='text/javascript'&gt;alert('hello world')&lt;/script&gt;"。 java

    轉義,就是一個個字符的匹配,而後轉換。看着不難,可是須要轉義的字符也很多。另外當字符數量大的時候,效率成爲一個問題。下面我寫一個函數,讓瀏覽器底層幫咱們作到。瀏覽器

 

 function stringEncode(str){
        var div=document.createElement('div');
        if(div.innerText){
            div.innerText=str;
        }else{
            div.textContent=str;//Support firefox
        }
        return div.innerHTML;
   }
相關文章
相關標籤/搜索