Web 開發(fā)者的安全檢查清單

簡評:開發(fā)安全可靠的 Web 應用程序非常困難脆荷,非常困難蚌成。
作者有 14 年開發(fā)安全 Web 應用程序的經(jīng)驗芭析,這個列表包含了作者在這段時間內(nèi)學到的一些重要問題截珍, 希望每個人在創(chuàng)建 Web 應用程序時都能夠認真考慮一下攀甚。

Database

  • 加密識別用戶或敏感信息的數(shù)據(jù)(如訪問令牌 token,電子郵件地址或計費詳細信息)岗喉。(這將限制精確匹配查找)
  • 如果您的數(shù)據(jù)庫支持低成本的空閑時加密(如AWS Aurora)秋度,則可以使其保護磁盤上的數(shù)據(jù)。確保所有備份都被加密存儲钱床。
  • 對數(shù)據(jù)庫訪問用戶帳戶使用最小權限荚斯,不要使用數(shù)據(jù)庫 root 帳戶,并檢查未使用的帳戶和密碼不正確的帳戶查牌。
  • 使用為此目的設計的 key store 來存儲和分發(fā) secret事期,不要硬編碼。
  • 通過使用 SQL 預處理語句完全防止 SQL 注入纸颜,例如:如果使用 NPM兽泣,不要使用 npm-mysql,請使用支持預處理語句的 npm-mysql2胁孙。

**Authentication **

  • 確保使用適當?shù)募用芩惴ǎㄈ?bcrypt)對所有的密碼進行摘要處理唠倦,不要自己實現(xiàn)加密模塊,并用正確的隨機數(shù)據(jù)正確地初始化加密模塊涮较。
  • 使用最佳實踐和經(jīng)過驗證的組件進行登錄稠鼻、忘記密碼和密碼重置,不要自己去實現(xiàn)法希。
  • 實現(xiàn)簡單但足夠的密碼規(guī)則枷餐,鼓勵用戶使用長且隨機的密碼。
  • 為您的所有服務使用多步身份驗證(一般都是兩步驗證)苫亦。

Denial of Service Protection

  • 確保 DOS 攻擊 API 不會影響到網(wǎng)站毛肋,至少在較慢的 API 路徑和身份驗證相關的 API(如登錄和令牌生成例程)上設置限速,考慮在前端 API 上使用驗證碼的來保護后端服務免受DOS 攻擊屋剑。
  • 對用戶提交的數(shù)據(jù)和請求的大小和結(jié)構執(zhí)行健全限制润匙。
  • 考慮使用全球緩存代理服務(如 CloudFlare)緩解 DDOS。

**Web Traffic **

  • 對整個網(wǎng)站使用 TLS唉匾,而不僅僅是登錄表單和響應孕讳。過渡性地匠楚,使用 strict-transport-security 請求頭來強制所有請求使用 HTTPS。
  • Cookie 必須是 httpOnly 和安全的厂财,并且由路徑和域限定芋簿。
  • 使用無 ubsafe-* 后門的 CSP ,配置起來很痛苦璃饱,但值得与斤。使用 CSP 的 Subresource Integrity 作為 CDN 內(nèi)容。
  • 在客戶端響應中使用 X-Frame-Option荚恶,X-XSS-Protection 頭撩穿。
  • 使用 HSTS 響應強制僅允許 TLS 訪問,將所有 HTTP 請求重定向到服務器上的 HTTPS 作為替代谒撼。
  • 使用所有形式的 CSRF 令牌食寡,并使用新的 SameSite Cookie 響應頭。

APIs

  • 確保您的公共 API 中無法枚舉資源廓潜。
  • 確保在使用您的 API 時抵皱,用戶已經(jīng)被完全驗證和授權。

Validation and Encoding

  • 在客戶端進行輸入驗證以快速獲得用戶有效輸入辩蛋,但不要相信它叨叙,在顯示之前始終對用戶輸入進行驗證和轉(zhuǎn)碼。
  • 使用服務器上的白名單驗證每個用戶輸入的最后一個 bit堪澎,不要直接將用戶內(nèi)容注入到響應中,切勿在 SQL 語句或其他服務器端邏輯中使用不受信任的用戶輸入味滞。

原文地址:Web Developer Security Checklist
擴展閱讀:
Web 程序員進階之路

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末樱蛤,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子剑鞍,更是在濱河造成了極大的恐慌昨凡,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蚁署,死亡現(xiàn)場離奇詭異便脊,居然都是意外死亡,警方通過查閱死者的電腦和手機光戈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進店門哪痰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人久妆,你說我怎么就攤上這事晌杰。” “怎么了筷弦?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵肋演,是天一觀的道長。 經(jīng)常有香客問我,道長爹殊,這世上最難降的妖魔是什么蜕乡? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮梗夸,結(jié)果婚禮上层玲,老公的妹妹穿的比我還像新娘。我一直安慰自己绒瘦,他們只是感情好称簿,可當我...
    茶點故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著惰帽,像睡著了一般憨降。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上该酗,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天授药,我揣著相機與錄音,去河邊找鬼呜魄。 笑死悔叽,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的爵嗅。 我是一名探鬼主播娇澎,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼睹晒!你這毒婦竟也來了趟庄?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤伪很,失蹤者是張志新(化名)和其女友劉穎戚啥,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體锉试,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡猫十,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了呆盖。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拖云。...
    茶點故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖絮短,靈堂內(nèi)的尸體忽然破棺而出江兢,到底是詐尸還是另有隱情,我是刑警寧澤丁频,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布杉允,位于F島的核電站邑贴,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏叔磷。R本人自食惡果不足惜拢驾,卻給世界環(huán)境...
    茶點故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望改基。 院中可真熱鬧繁疤,春花似錦、人聲如沸秕狰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鸣哀。三九已至架忌,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間我衬,已是汗流浹背叹放。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留挠羔,地道東北人井仰。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像破加,于是被迫代替她去往敵國和親俱恶。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,901評論 2 355

推薦閱讀更多精彩內(nèi)容