真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

保護(hù)JavaScript的步驟有哪些

保護(hù)JavaScript的步驟有哪些,針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡(jiǎn)單易行的方法。

創(chuàng)新互聯(lián)主營(yíng)環(huán)江網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,成都app軟件開發(fā),環(huán)江h(huán)5重慶小程序開發(fā)搭建,環(huán)江網(wǎng)站營(yíng)銷推廣歡迎環(huán)江等地區(qū)企業(yè)咨詢

正文

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

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

1. JavaScript的完整性檢查

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

 

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

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

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

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

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

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

保護(hù)JavaScript的步驟有哪些

NPM audit security  report example

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

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

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

保護(hù)JavaScript的步驟有哪些

One such email I have  gotten for one of my projects

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

你有沒有見過任何NPM軟件包版本前面的^或~符號(hào)?

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

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

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

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

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

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

  • 使用開發(fā)人員的控制臺(tái)來插入或更改JavaScript。

  • 在地址欄中輸入 "javascript:SCRIPT"。

保護(hù)JavaScript的步驟有哪些

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

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

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

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

Content-Security-Policy: trusted-types; Content-Security-Policy: trusted-types 'none'; Content-Security-Policy: trusted-types ; Content-Security-Policy: trusted-types   'allow-duplicates';

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

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

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

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

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

use strict

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

  • 它對(duì)一些以前保持沉默的錯(cuò)誤拋出了錯(cuò)誤。

  • 修正了使JavaScript引擎難以進(jìn)行優(yōu)化的錯(cuò)誤。

  • 禁止使用可能會(huì)在未來版本的ECMAScript中定義的保留詞。

  • 當(dāng)采取 "不安全 "的行動(dòng)(如獲得對(duì)全局對(duì)象的訪問)時(shí)拋出錯(cuò)誤。

  • 多年來,每個(gè)現(xiàn)代瀏覽器都支持嚴(yán)格模式。如果瀏覽器不支持嚴(yán)格模式,該表達(dá)式將被簡(jiǎn)單地忽略。

6. Lint Your Code

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

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

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

  • JSLint

  • JSHint

  • ESLint

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

保護(hù)JavaScript的步驟有哪些

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

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

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

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

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

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

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

關(guān)于保護(hù)JavaScript的步驟有哪些問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。


本文名稱:保護(hù)JavaScript的步驟有哪些
文章轉(zhuǎn)載:http://weahome.cn/article/jjchjs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部