1. 程式人生 > >使用jquery對特殊字元進行轉義,防止js注入

使用jquery對特殊字元進行轉義,防止js注入

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

1: var html="<script>alert('asdfasdf')<\/script>";

2: $("#content").text(html); 這樣會直接彈出對話方塊

3:解決方法

4: html=$("#隨便一個文字框的ID").text(html).html();

5: $("#content").append("<div>"+html+"</div>");