欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談html轉義及防止javascript注入攻擊的方法

 更新時間:2016年12月04日 14:10:23   投稿:jingxian  
下面小編就為大家?guī)硪黄獪\談html轉義及防止javascript注入攻擊的方法。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

有的時候頁面中會有一個輸入框,用戶輸入內容后會顯示在頁面中,類似于網頁聊天應用。如果用戶輸入了一段js腳本,比例:<script>alert('test');</script>,頁面會彈出一個對話框,或者輸入的腳本中有改變頁面js變量的代碼則會時程序異?;蛘哌_到跳過某種驗證的目的。那如何防止這種惡意的js腳本攻擊呢?通過html轉義能解決這個問題。

一:什么是html轉義?

html轉義是將特殊字符或html標簽轉換為與之對應的字符。如:< 會轉義為 &lt;> 或轉義為 &gt;像“<script>alert('test');</script>”這段字符會轉義為:“&lt;script&gt;alert('test');&lt;/script&gt;”再顯示時頁面會將&lt;解析為<,&gt;解析為>,從而還原了用戶的真實輸入,最終顯示在頁面上 的還是“<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);

建議使用jquery實現,因為有更好的兼容性。

以上這篇淺談html轉義及防止javascript注入攻擊的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • JavaScript欄目列表隱藏/顯示簡單實現

    JavaScript欄目列表隱藏/顯示簡單實現

    隱藏側邊欄,并將圖片換成右箭頭圖片;顯示側邊欄,并將圖片換成左箭頭,這樣的效果想必大家都很熟悉吧,接下來實現下,感興趣的朋友可以參考下哈
    2013-04-04
  • 詳解ES6 中的Object.assign()的用法實例代碼

    詳解ES6 中的Object.assign()的用法實例代碼

    這篇文章主要介紹了ES6 Object.assign()的用法及用途,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • html5+javascript實現簡單上傳的注意細節(jié)

    html5+javascript實現簡單上傳的注意細節(jié)

    這篇文章主要為大家詳細介紹了html5+javascript實現上傳操作的注意細節(jié),form表單樣式不美觀等細節(jié)問題,感興趣的小伙伴們可以參考一下
    2016-04-04
  • 'webpack-dev-server'?不是內部或外部命令也不是可運行的程序?或批處理文件的最新解決方法

    'webpack-dev-server'?不是內部或外部命令也不是可運行的程序?或批處理文件的最

    這篇文章主要介紹了'webpack-dev-server'?不是內部或外部命令也不是可運行的程序?或批處理文件的最新解決方法,文中給大家補充介紹了webpack-dev-server的介紹與用法,需要的朋友可以參考下
    2023-02-02
  • javascript 小數取整簡單實現方式

    javascript 小數取整簡單實現方式

    這篇文章主要介紹了javascript 小數取整d的簡單實現方式,需要的朋友可以參考下
    2014-05-05
  • 極簡主義法編寫JavaScript類

    極簡主義法編寫JavaScript類

    荷蘭程序員Gabor de Mooij提出了一種比Object.create()更好的新方法,他稱這種方法為"極簡主義法"(minimalist approach)。下面通過本文給大家分享極簡主義法編寫JavaScript類的相關知識,一起看看吧
    2017-11-11
  • JavaScript 對象、函數和繼承

    JavaScript 對象、函數和繼承

    JavaScript可以說是一個基于對象的編程語言,為什么說是基于對象而不是面向對象,因為JavaScript自身只實現了封裝,而沒有實現繼承和多態(tài)。
    2009-07-07
  • JavaScript判斷數據類型有幾種方法及區(qū)別介紹

    JavaScript判斷數據類型有幾種方法及區(qū)別介紹

    這篇文章主要介紹了JavaScript判斷數據類型有幾種方法及區(qū)別介紹,本文給大家分享多種方法通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • Swiper.js插件超簡單實現輪播圖

    Swiper.js插件超簡單實現輪播圖

    這篇文章主要介紹了Swiper.js插件超簡單實現輪播圖,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • ES6新數據結構Map功能與用法示例

    ES6新數據結構Map功能與用法示例

    這篇文章主要介紹了ES6新數據結構Map功能與用法,結合實例形式分析了Map的功能、使用方法及相關注意事項,需要的朋友可以參考下
    2017-03-03

最新評論