成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

保護JavaScript客戶端APP的最有效方法

開發 前端
客戶端技術,如 JavaScript,有很多有用的特性,正因為如此,它成為了世界上最流行的語言之一。它有很多優點,即時解析就是其一。即時解析有不少優點,比如可以在瀏覽器下載代碼并立即執行。然而,自由度越高,責任越大。

[[176205]]

客戶端技術,如 JavaScript,有很多有用的特性,正因為如此,它成為了世界上最流行的語言之一。它有很多優點,即時解析就是其一。即時解析有不少優點,比如可以在瀏覽器下載代碼并立即執行。然而,自由度越高,責任越大。

我們會在這篇文章中深入 JavaScript 的安全隱患,不過范圍僅限于瀏覽器中運行的前端代碼。我們會關注一些將來產生的其它類型。

現在發揮你的想像,瀏覽器總是要執行代碼的,它首先下載頁面并進行解析。瀏覽器有著下載和解析同時進行的能力,所以它不會等待所有東西下載完成。那么,它遇到 JavaScript 的時候會發生什么事情?

JavaScript會阻塞渲染,這在它執行的時候是個巨大的優勢。但這意味著瀏覽器將停止解析,直到執行完 JavaScript 后才會繼續。這一特點給于這種編程語言極大的靈活性,它可以打開任意數量的代碼。

但問題在于,這個特性會帶來什么樣的影響?

  1. <div id="hack-target"></div> 
  2. <button>Set Value</button>   
  3. <script> 
  4.   document.querySelector('button').addEventListener('click', setValue);   
  5.   function setValue() { 
  6.     var value = '2'
  7.     document.getElementById('hack-target').innerText = value; 
  8.   }</script> 

這段代碼為 HTML 綁定事件,當你點擊按鈕的時候,觸發回調。

對于客戶端的 JavaScript,你可以在設置值的地方設置一個斷點。這個斷點會在事件觸發的時候擊中。var value = '2'; 用于設置值,而且可以修改。調試器會在這里暫停并允許篡改頁面。這一功能非常有用,而且當它發生的時候,瀏覽器不會對它進行標記。

既然調試器暫停了執行代碼,它同時也暫停了渲染。調試器本身是瀏覽器提供的工具之一,任何人都可以使用。這就是 Web Developer Tools(開發者工具)。

 

在 Code Pen 上可以看到這種技術的應用。下面是關于這個特性的截圖:

這一特性對調試 JavaScript 十分有用,但是它的安全性如何呢?

這個特性意味著攻擊者可以在運行時改變 JavaScript。攻擊者可以通過斷點暫時執行,然后修改 DOM 并在控制臺輸入任意 JavaScript 代碼。這類功能可以利用客戶端的漏洞,更改數據,支持會話并在頁面內用 JavaScript 作出任意改動。

例如,打開開發者工具,進入控制臺頁面,并輸入:

  1. document.querySelector('button'
  2.         .addEventListener('click'function () {  
  3.             alert('sacked'); 
  4.         });` 

下次這個事件再觸發的時候,它會執行修改后的 JavaScript 代碼。

 

為什么是 JavaScript?

你可能想問,這一切從何而來?Netscape 在1995年發布JavaScript的時候,這種新語言就成為了 Web 的 “膠水語言”。

Netscape 把 JavaScript 標準提交給Ecma國際組織之后,他們的版本就成為了標準,也就是大家所知的 ECMAScript。既然 ECMAScript 是一個標準,任何瀏覽器都被要求支持這個標準,這樣在使用不同的瀏覽器時才會不發生沖突。也就是說,你可以為谷歌瀏覽器寫一段代碼,但它同時也能在 Opera、NetScape、Internet Explorer 和 Microsoft Edge 中運行。JavaScript 創建于靈活的環境,它有能力讓你做你想做的事情。這些設計原則使用 JavaScript 自然具有了動態的天賦,也使它成為瀏覽器的語言。

這些都已經成為歷史,但與 JavaScript 的安全性有什么關系?

 

客戶端安全

為了防止惡意的 JavaScript 代碼,最好的選擇是添加運行時保護。運行時程序自我保護(Runtime Application Self-Protection,RASP)將在執行客戶端代碼的時候對它加以保護。隨著 Web 靈活性和動態性的到來,攻擊者通過客戶端 JavaScript 進行攻擊成為可能,運行時安全也成為必要。

RASP 是最為有效的客戶端應用保護方式,總結起來如下所示:

運行時程序自我保護是一種安全技術,它創建或鏈接到應用程序或其運行環境,并控制應用程序執行,檢測和防止實時攻擊。

一旦JavaScript 在瀏覽器中執行,沒有任何東西對其完全防護。RASP 會防范發生在運行時的高度和代碼篡改攻擊,包括在離線狀態修改應用程序的攻擊。一個好的 RASP 解決方案也會保護自身代碼,使攻擊者不能篡改解決方案本身,或者直接繞過它。這幾層保護保證著開放網絡的安全。

 

如果 RASP 不錯,它會在攻擊者嘗試阻止代碼的時候發出通知,以便用戶知道并采取行動,比如取消用戶會話。

Jscrambler提供了一個 RASP 解決方案來保證應用不受到運行時攻擊。它會自我防御并檢測篡改。它的自我防御能力會激活對 JavaScript 應用的保護。Jscrambler 使用反調試和反篡改技術——眾所周知的應用程序保護概念——對 JavaScript 而言明確現實和局限。反調試功能檢測調試工具(比如 DevTools, Firebug)的使用,并試圖阻止逆向工程師使用它來調試應用。它包含一些預置的代碼陷阱,使調試器停止工作,造成堆棧的增長,阻止用戶探查應用的控制流。反篡改功能則會檢查代碼的變化,并做出反應。比如,你在自動防御所保護的一個函數中添加/刪除一個分號,它會檢測到變化,然后停止運行代碼。兩種技術與代碼混淆結合會使得對應用程序的篡改寸步難行。

結論

實現 JavaScript 的安全性必須考慮在運行時會發生什么。它本質上來說是為 Web 的靈活性而生的動態語言。它是一柄雙刃劍,使用的時候一定要注意到應盡的責任。

責任編輯:未麗燕 來源: 開源中國社區
相關推薦

2022-06-22 10:07:07

JavaScript枚舉

2023-06-06 14:05:00

攜程

2014-03-10 10:22:40

JavaScriptJS弊端

2009-06-12 19:18:08

REST客戶端框架JavaScript

2010-07-19 17:10:31

安裝Telnet客戶端

2015-06-03 09:27:05

JavaScript客戶端檢測技術

2021-09-22 15:46:29

虛擬桌面瘦客戶端胖客戶端

2021-08-06 10:47:30

SIP. 防火墻竊取服務

2010-02-25 16:20:02

WCF客戶端

2009-11-25 13:21:30

PHP作為memcac

2011-03-21 14:53:36

Nagios監控Linux

2011-04-06 14:24:20

Nagios監控Linux

2011-08-17 10:10:59

2010-04-21 10:37:02

Oracle創建

2011-05-12 11:10:15

虛擬桌面

2010-02-24 16:39:27

WCF客戶端處理

2010-06-01 09:54:23

SVN客戶端安裝

2011-10-26 13:17:05

2011-03-24 13:00:31

配置nagios客戶端

2011-03-02 14:36:24

Filezilla客戶端
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩欧美国产精品一区二区 | 日韩成人在线观看 | 久久久久精| 中文字幕精品一区二区三区精品 | 狠狠色综合久久丁香婷婷 | 亚洲人在线 | 精品欧美一区二区精品久久久 | 国产男人的天堂 | 在线播放国产一区二区三区 | 99影视 | 欧美视频一级 | 国产精品麻 | 黄a免费网络 | 国产精品日女人 | 国产91在线 | 中日 | 日韩一区二区三区精品 | 男女视频在线观看免费 | 成人欧美一区二区三区 | 狠狠操电影 | 国产一区二区观看 | 久久噜噜噜精品国产亚洲综合 | 成人在线免费 | 美女逼网站| 亚洲电影免费 | 午夜精品导航 | 久久精品国产久精国产 | 中文字幕在线不卡 | 日本成人中文字幕 | 久久综合久久综合久久 | 国产精品久久国产精品久久 | 成人在线观看网址 | 国产精品视频免费观看 | 国产精品五月天 | 羞羞视频免费在线 | 国产精品久久国产精品 | 国产精品一区二区欧美黑人喷潮水 | 福利视频一区二区三区 | 国产精品九九九 | 成人三级视频 | 一区二区免费在线观看 | 久久久久国产一区二区三区四区 |