jquery ajax對特殊字符進行轉義防止js注入使用示例


在使用ajax進行留言的時候,出現了一個問題.因為留言內容寫完之后,通過ajax提交內容,同時使用js把留言的內容添加到頁面上來.瀏覽留言的時候也是通過ajax請求,然后再顯示的.這樣,如果有人在留言里寫入了js語句,這結語句都會被執行.解決辦法就是對這些特殊字符進行轉義再顯示出來.如果在jsp中使用jstl標簽,就很簡單了.直接使用<c:out value=”${r.content}” />這樣就行了,會自動進行轉義,其中省略了參數escapeXML=”true”,這是默認的.所以說在顯示這些用戶提交的內容的時候不要用el表達示,因為el不會自動進行轉義,用c:out比較好.而如果也是通過ajax請求,然后再顯示的,那就用下面的方法.其實也很簡單. 

 
var html="<script>alert('asdfasdf')<\/script>"; 
$("#content").text(html); 

  


那么會發生什么情況 解決辦法很簡單 就是把這些特殊字符進行轉義也就是<變成<>變成> 使用jquery對字符進行轉義這樣就可以了 

 

<head> 
<script> 
var html="<script>alert('asdfasdf')<\/scipt>"; 
html=$("#x").text(html).html(); 
$("#content").append("<div>"+html+"</div>"); 
</script> 
</head> 
<body> 
<spanid="x"style="display:none"></span> 
<divid="content"></div> 
</body> 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM