有的時候頁面中會有一個輸入框,用戶輸入內容后會顯示在頁面中,類似于網頁聊天應用。如果用戶輸入了一段js腳本,比例: script alert( test /script ,頁面會彈出一個對話框,或者輸入的腳本中有改變頁面js變量的代碼則會時程序異?;蛘哌_到跳過某種驗證的目的。那如何防止這種惡意的js腳本攻擊呢?通過html轉義能解決這個問題。
一:什么是html轉義?
html轉義是將特殊字符或html標簽轉換為與之對應的字符。如: 會轉義為 或轉義為 像“ script alert( test /script ”這段字符會轉義為:“ script alert( test /script ”再顯示時頁面會將 解析為 , 解析為 ,從而還原了用戶的真實輸入,最終顯示在頁面上 的還是“ script alert( test /script ”,即避免了js注入攻擊又真實的顯示了用戶輸入。
二:如何轉義?
1、通過js實現
//轉義 元素的innerHTML內容即為轉義后的字符function htmlEncode ( str ) { var ele = document.createElement( span ele.appendChild( document.createTextNode( str ) ); return ele.innerHTML;//解析 function htmlDecode ( str ) { var ele = document.createElement( span ele.innerHTML = str; return ele.textContent;}
2、通過jquery實現
function htmlEncodeJQ ( str ) { return $( span/ ).text( str ).html();function htmlDecodeJQ ( str ) { return $( span/ ).html( str ).text();}
3、使用
var msg=htmlEncodeJQ( script alert( test /script $( body ).append(msg);
以上就是淺談html轉義及防止javascript注入攻擊的方法的詳細內容,html教程
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
|
新聞熱點
疑難解答