W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
1.6.1 【必須】設(shè)置正確的HTTP響應(yīng)包類型
application/json
;若為 xml,則設(shè)置為text/xml
。1.6.2 【必須】添加安全響應(yīng)頭
X-Content-Type-Options: nosniff
。X-Frame-Options
。按需合理設(shè)置其允許范圍,包括:DENY
、SAMEORIGIN
、ALLOW-FROM origin
。用法參考:MDN文檔1.6.3 【必須】外部輸入拼接到響應(yīng)頁面前,進(jìn)行編碼處理
場(chǎng)景 | 編碼規(guī)則 |
---|---|
輸出點(diǎn)在 HTML 標(biāo)簽之間 | 需要對(duì)以下 6 個(gè)特殊字符進(jìn)行 HTML 實(shí)體編碼(& , < , > , " , ' ,/ )。示例: & --> `& < --> < > --> > " --> " ' --> ' / --> / |
輸出點(diǎn)在 HTML 標(biāo)簽普通屬性內(nèi)(如 href、src、style 等,on 事件除外) | 要對(duì)數(shù)據(jù)進(jìn)行 HTML 屬性編碼。 編碼規(guī)則:除了阿拉伯?dāng)?shù)字和字母,對(duì)其他所有的字符進(jìn)行編碼,只要該字符的 ASCII 碼小于 256。編碼后輸出的格式為 HH ;(以 開頭,HH 則是指該字符對(duì)應(yīng)的十六進(jìn)制數(shù)字,分號(hào)作為結(jié)束符) |
輸出點(diǎn)在 JS 內(nèi)的數(shù)據(jù)中 | 需要進(jìn)行 js 編碼 編碼規(guī)則: 除了阿拉伯?dāng)?shù)字和字母,對(duì)其他所有的字符進(jìn)行編碼,只要該字符的 ASCII 碼小于 256。編碼后輸出的格式為 \xHH (以 \x 開頭,HH 則是指該字符對(duì)應(yīng)的十六進(jìn)制數(shù)字)Tips:這種場(chǎng)景僅限于外部數(shù)據(jù)拼接在 js 里被引號(hào)括起來的變量值中。除此之外禁止直接將代碼拼接在 js 代碼中。 |
輸出點(diǎn)在 CSS 中(Style 屬性) | 需要進(jìn)行 CSS 編碼 編碼規(guī)則: 除了阿拉伯?dāng)?shù)字和字母,對(duì)其他所有的字符進(jìn)行編碼,只要該字符的 ASCII 碼小于 256。編碼后輸出的格式為 \HH (以 \ 開頭,HH 則是指該字符對(duì)應(yīng)的十六進(jìn)制數(shù)字) |
輸出點(diǎn)在 URL 屬性中 | 對(duì)這些數(shù)據(jù)進(jìn)行 URL 編碼 Tips:除此之外,所有鏈接類屬性應(yīng)該校驗(yàn)其協(xié)議。禁止 JavaScript、data 和 Vb 偽協(xié)議。 |
1.6.4 【必須】響應(yīng)禁止展示物理資源、程序內(nèi)部代碼邏輯等敏感信息
物理路徑
、程序內(nèi)部源代碼
、調(diào)試日志
、內(nèi)部賬號(hào)名
、內(nèi)網(wǎng)ip地址
等。// bad
Access denied for user 'xxx'@'xx.xxx.xxx.162' (using password: NO)"
1.6.5 【推薦】添加安全縱深防御措施
nonce-
// good:使用helmet組件安全地配置響應(yīng)頭
const express = require("express");
const helmet = require("helmet");
const app = express();
app.use(helmet());
// good:正確配置Content-Type、添加了安全響應(yīng)頭,引入了CSP
Router.get("/", (req, res) => {
res.header("Content-Type", "application/json");
res.header("X-Content-Type-Options", "nosniff");
res.header("X-Frame-Options", "SAMEORIGIN");
res.header("Content-Security-Policy", "script-src 'self'");
});
關(guān)聯(lián)漏洞:中風(fēng)險(xiǎn) - XSS、中風(fēng)險(xiǎn) - 跳轉(zhuǎn)漏洞
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: