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

2021年保護(hù)JavaScript的7個(gè)步驟

開(kāi)發(fā) 前端
JavaScript是一個(gè)高度依賴第三方庫(kù)的生態(tài)系統(tǒng)。因此,確保JavaScript的安全需要遵循最佳實(shí)踐來(lái)減少攻擊。但是,我們?nèi)绾伪3諮avaScript應(yīng)用程序的安全?讓我們來(lái)了解一下。

[[400099]]

大家好,我是TianTian。

今天分享的內(nèi)容是如何保護(hù)JavaScript的安全性。

正文

今天,JavaScript的使用無(wú)處不在。它在你的瀏覽器和后端運(yùn)行。

此外,JavaScript是一個(gè)高度依賴第三方庫(kù)的生態(tài)系統(tǒng)。因此,確保JavaScript的安全需要遵循最佳實(shí)踐來(lái)減少攻擊。但是,我們?nèi)绾伪3諮avaScript應(yīng)用程序的安全?讓我們來(lái)了解一下。

1. JavaScript的完整性檢查

作為一個(gè)前端開(kāi)發(fā)者,你可能已經(jīng)使用**< script >**標(biāo)簽來(lái)導(dǎo)入第三方庫(kù)。你想過(guò)這樣做的安全風(fēng)險(xiǎn)嗎?如果第三方資源被篡改了怎么辦?是的,當(dāng)你在你的網(wǎng)站上渲染外部資源時(shí),這些事情都可能發(fā)生。因此,你的網(wǎng)站可能會(huì)面臨一個(gè)安全漏洞。作為對(duì)此的安全措施,你可以在你的腳本中添加一個(gè)完整性(也稱為子資源完整性--SRI)代碼,如下所示。

  1. <script 
  2.   src="https://code.jquery.com/jquery-3.3.1.slim.min.js" 
  3.   integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" 
  4.   crossorigin="anonymous"
  5. </script> 

完整性屬性允許瀏覽器檢查獲取的腳本,以確保如果源頭被篡改,代碼永遠(yuǎn)不會(huì)被加載。

  • 注意:還是要確保你最初引用的代碼不包含任何漏洞。

2. 經(jīng)常測(cè)試NPM的漏洞

我希望你們都知道,我們可以使用npm audit 命令來(lái)檢測(cè)所有安裝的依賴關(guān)系的漏洞。它提供漏洞報(bào)告,并為它們提供修復(fù)。

但你多長(zhǎng)時(shí)間做一次呢?

除非我們把它自動(dòng)化,否則這些漏洞會(huì)堆積起來(lái),使之難以修復(fù)。記住,其中一些甚至可能是關(guān)鍵的,允許嚴(yán)重的漏洞。作為一個(gè)解決方案,你可以在你的CI中為每個(gè)拉動(dòng)請(qǐng)求運(yùn)行NPM來(lái)識(shí)別漏洞。因此,你可以防止任何漏洞不被注意到。

NPM audit security report example

然而,有一些漏洞需要開(kāi)發(fā)人員的手動(dòng)干預(yù)才能解決。

GitHub的一個(gè)額外舉措

最近,GitHub推出了一個(gè)名為Dependabot的機(jī)器人,自動(dòng)掃描NPM的依賴關(guān)系,并通過(guò)電子郵件通知你,說(shuō)明風(fēng)險(xiǎn)。

One such email I have gotten for one of my projects

3. 保持次要和補(bǔ)丁版本更新

你有沒(méi)有見(jiàn)過(guò)任何NPM軟件包版本前面的^或~符號(hào)?

這些符號(hào)表示對(duì)次要版本和補(bǔ)丁版本(取決于符號(hào))的自動(dòng)版本提升。從技術(shù)上講,次要版本和補(bǔ)丁版本都是向后兼容的,減少了給應(yīng)用程序引入錯(cuò)誤的風(fēng)險(xiǎn)。

由于大多數(shù)第三方庫(kù)發(fā)布的熱修復(fù)漏洞都是補(bǔ)丁版本的顛簸,至少啟用自動(dòng)補(bǔ)丁更新有助于降低安全風(fēng)險(xiǎn)。

4. 具備驗(yàn)證功能以避免注入病毒

作為一條經(jīng)驗(yàn)法則,我們不應(yīng)該只依賴客戶端驗(yàn)證,因?yàn)楣粽呖梢愿鶕?jù)需要改變它們。然而,通過(guò)對(duì)每個(gè)輸入的驗(yàn)證,可以省略一些JavaScript注入。

例如,如果你在評(píng)論區(qū)輸入帶有引號(hào)的東西< script > ,這些引號(hào)將被替換成雙引號(hào) << scrip t>< /script>>。那么輸入的JavaScript代碼將不會(huì)被執(zhí)行。這被稱為跨網(wǎng)站腳本(XSS)。

同樣地,還有一些其他常見(jiàn)的方法來(lái)進(jìn)行JavaScript注入:

  • 使用開(kāi)發(fā)人員的控制臺(tái)來(lái)插入或更改JavaScript。
  • 在地址欄中輸入 "javascript:SCRIPT"。

防止JS注入對(duì)保持你的應(yīng)用程序的安全是很重要的。

就像我之前提到的,有驗(yàn)證的地方是防止它的一個(gè)方法。

例如,在保存任何輸入到數(shù)據(jù)庫(kù)之前,用 < ; 替換所有 < ,用 > ; 替換所有 >。

內(nèi)容安全策略(CSP)是另一種避免惡意注入的方法。使用CSP是非常直接的,如下所示。

  1. Content-Security-Policy: trusted-types; 
  2. Content-Security-Policy: trusted-types 'none'
  3. Content-Security-Policy: trusted-types <policyName>; 
  4. Content-Security-Policy: trusted-types <policyName> <policyName> 'allow-duplicates'

關(guān)于CSP的更多信息,請(qǐng)參考這些指南。

https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP

5. 始終保持嚴(yán)格模式的開(kāi)啟

開(kāi)啟嚴(yán)格模式會(huì)限制你寫不安全的代碼。

此外,啟用這種模式是很簡(jiǎn)單的。就像在你的JavaScript文件中加入下面這一行一樣簡(jiǎn)單。

  1. use strict 

當(dāng)嚴(yán)格模式開(kāi)啟時(shí):

  • 它對(duì)一些以前保持沉默的錯(cuò)誤拋出了錯(cuò)誤。
  • 修正了使JavaScript引擎難以進(jìn)行優(yōu)化的錯(cuò)誤。
  • 禁止使用可能會(huì)在未來(lái)版本的ECMAScript中定義的保留詞。
  • 當(dāng)采取 "不安全 "的行動(dòng)(如獲得對(duì)全局對(duì)象的訪問(wèn))時(shí)拋出錯(cuò)誤。
  • 多年來(lái),每個(gè)現(xiàn)代瀏覽器都支持嚴(yán)格模式。如果瀏覽器不支持嚴(yán)格模式,該表達(dá)式將被簡(jiǎn)單地忽略。

6. Lint Your Code

Linters對(duì)你的代碼庫(kù)進(jìn)行靜態(tài)分析。它有助于建立質(zhì)量和避免常見(jiàn)的陷阱。

由于質(zhì)量與安全是相輔相成的,檢查有助于減少安全風(fēng)險(xiǎn)。

我們對(duì)JavaScript使用的幾個(gè)流行的工具如下:

  • JSLint
  • JSHint
  • ESLint

此外,像SonarCloud這樣的工具也可以用來(lái)識(shí)別代碼氣味和已知的安全漏洞。一份Sonar報(bào)告將看起來(lái)像這樣。

注意:正如你在上圖中看到的,它有一個(gè)安全部分,顯示了漏洞、安全熱點(diǎn)。

7. 簡(jiǎn)化和美化你的代碼

攻擊者通常會(huì)試圖理解你的代碼,以入侵他們的方式。

因此,在生產(chǎn)構(gòu)建中擁有一個(gè)可讀的源代碼會(huì)增加攻擊性。作為一種常見(jiàn)的做法,如果你對(duì)你的JavaScript代碼進(jìn)行最小化和丑化,就很難利用你編寫的代碼中的漏洞。

然而,如果你想采取極端的措施來(lái)隱藏你的代碼,不被用戶/客戶發(fā)現(xiàn),那么它應(yīng)該被保存在服務(wù)器端,根本不需要發(fā)送到瀏覽器上。

最后

注重安全是非常重要的,特別是在JavaScript應(yīng)用程序中,要使你的應(yīng)用程序安全。

此外,如果你想尋求高級(jí)的解決方案。在這種情況下,有一些工具,如Snyk、WhiteSource,它們專門掃描你的代碼中的漏洞,并通過(guò)連續(xù)的集成將其自動(dòng)化。

 

責(zé)任編輯:姜華 來(lái)源: TianTianUp
相關(guān)推薦

2015-06-17 09:59:18

2019-10-12 10:00:17

Linux服務(wù)器網(wǎng)絡(luò)

2021-03-04 11:06:03

云計(jì)算開(kāi)源開(kāi)源策略

2021-02-21 22:22:40

云端數(shù)據(jù)云安全網(wǎng)絡(luò)安全

2020-12-24 06:57:13

用戶體驗(yàn)虛擬現(xiàn)實(shí)人工智能

2021-02-26 10:24:14

云戰(zhàn)略云計(jì)算云服務(wù)

2021-03-21 22:16:47

JavaScript開(kāi)發(fā)代碼

2021-06-17 13:56:30

區(qū)塊鏈趨勢(shì)區(qū)塊鏈比特幣

2020-02-11 10:50:08

物聯(lián)網(wǎng)安全IT

2018-04-09 11:41:02

2012-10-31 10:00:01

數(shù)據(jù)保護(hù)數(shù)據(jù)安全

2019-07-15 14:49:16

網(wǎng)絡(luò)安全云計(jì)算軟件

2020-12-20 17:19:24

主機(jī)托管邊緣計(jì)算遠(yuǎn)程工作

2021-02-01 11:09:58

大數(shù)據(jù)網(wǎng)絡(luò)安全大數(shù)據(jù)安全

2021-06-15 11:10:00

JavaScript框架語(yǔ)言

2021-06-08 13:28:57

JavaScript開(kāi)發(fā)代碼

2021-05-09 22:45:18

機(jī)器學(xué)習(xí)人工智能技術(shù)

2012-02-21 09:45:03

虛擬化虛擬化環(huán)境服務(wù)器

2024-06-12 13:51:12

2021-02-09 10:53:21

數(shù)據(jù)科學(xué)數(shù)據(jù)分析IT
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 黄色一级毛片免费看 | 亚洲一区二区三区四区五区中文 | 久久精品国产精品青草 | 亚洲电影在线播放 | 欧美一区二区三区一在线观看 | 国产日韩一区二区三免费高清 | 免费在线观看一区二区 | 日韩精品一区二区三区四区视频 | 一级aaaaaa毛片免费同男同女 | 欧美久久视频 | 久久高清| 国产激情视频网站 | 免费高清av| 精品1区| 国产精品一区二区不卡 | 成在线人视频免费视频 | 91中文字幕在线 | 国产精品毛片 | 日韩精品国产精品 | 成人区精品一区二区婷婷 | 日韩精品一区二区三区中文字幕 | 欧美色综合一区二区三区 | 日韩精品在线一区 | 日日干天天操 | 黑人精品欧美一区二区蜜桃 | 欧美黄色片 | 在线观看成人小视频 | 欧美精品一区二区三区在线 | 国产精品成人国产乱一区 | 噜噜噜色网 | 毛片入口| 日韩免费av | 国产偷录叫床高潮录音 | 青青草av | av一区二区三区四区 | 国产成人精品免费视频大全最热 | 国产日韩欧美在线观看 | 国产精品毛片av | 日韩一区二区三区在线观看 | 一级黄色片在线看 | 午夜a v电影 |