亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

淺談html轉(zhuǎn)義及防止javascript注入攻擊的方法

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

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

一:什么是html轉(zhuǎn)義?

html轉(zhuǎn)義是將特殊字符或html標(biāo)簽轉(zhuǎn)換為與之對應(yīng)的字符。如:< 會轉(zhuǎn)義為 &lt;> 或轉(zhuǎn)義為 &gt;像“<script>alert('test');</script>”這段字符會轉(zhuǎn)義為:“&lt;script&gt;alert('test');&lt;/script&gt;”再顯示時頁面會將&lt;解析為<,&gt;解析為>,從而還原了用戶的真實輸入,最終顯示在頁面上 的還是“<script>alert('test');</script>”,即避免了js注入攻擊又真實的顯示了用戶輸入。

二:如何轉(zhuǎn)義?

1、通過js實現(xiàn)

//轉(zhuǎn)義 元素的innerHTML內(nèi)容即為轉(zhuǎn)義后的字符
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實現(xiàn)

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實現(xiàn),因為有更好的兼容性。

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

相關(guān)文章

  • JavaScript欄目列表隱藏/顯示簡單實現(xiàn)

    JavaScript欄目列表隱藏/顯示簡單實現(xiàn)

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

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

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

    html5+javascript實現(xiàn)簡單上傳的注意細(xì)節(jié)

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

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

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

    javascript 小數(shù)取整簡單實現(xiàn)方式

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

    極簡主義法編寫JavaScript類

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

    JavaScript 對象、函數(shù)和繼承

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

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

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

    Swiper.js插件超簡單實現(xiàn)輪播圖

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

    ES6新數(shù)據(jù)結(jié)構(gòu)Map功能與用法示例

    這篇文章主要介紹了ES6新數(shù)據(jù)結(jié)構(gòu)Map功能與用法,結(jié)合實例形式分析了Map的功能、使用方法及相關(guān)注意事項,需要的朋友可以參考下
    2017-03-03

最新評論