iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 14
1

出處 , 也有簡體版 (https://developer.mozilla.org/en-US/docs/Learn/Server-side/First_steps/Website_security)

一些關鍵訊息

前面段落提到大部分的安全漏洞 , 在 web app 信任來自 browser 的資料的狀況下都會成功 。
無論如何 , 增強網站安全需要在 browser 顯示資料 、 使用 SQL 查詢 、 傳遞檔案到執行系統之前過濾所有 user-originating 資料

Important: Never trust data from the browser 別相信任何來自 browser 的資料是這個章節最重要的事 ,
包含但不限於 GET req URL parameters, POST req, HTTP headers&cookies, user 上傳的檔案。
經常檢查及消毒所有接收的檔案 , 假設最差狀況

有幾個步驟可以參考:

  • 換成更有效的密碼且定期更換 , 考慮兩個網站的認證功能 ,
    讓 user 輸入額外的認證碼 ( 通常是傳到 user 私有的裝置 , 例如手機 )
  • 設定 server 使用 HTTPS & HSTS ( HTTP Strict Transport Security )
    HTTPS 將 client 與 server 之間傳遞的資料加密 , 這確認登入憑證 、 cookies 、 POST req data 及 header 資訊 , 它們都較難被壞蛋取得
  • 持續追蹤現行的威脅 ( the current OWASP list is here ) 以及常見漏洞
  • 漏洞偵查工具去自動測試安全性 。 一些網站有懸賞 bug 的獎金 , 像 Mozilla 這樣
  • 只儲存跟顯示需要的部分 。 假設 user 需要儲存隱私資料 ( 信用卡資料 ) , 只顯示讓 user 可以辨識 、 惡意 user 無法足以辨識的卡號字數 , 以及使用其他網站輸入 。
    最常見的就是只顯示末四碼

框架可減少很多常見漏洞

(MDN的)總結

本篇解釋網頁安全觀念 , 以及很多常見威脅及漏洞 , 讓我們有方向去試著保護網站 ,
最重要的是要了解不要相信任何資料( 來自 browser的資料 ) , user 發送的所有資料都需要被消毒 。

我們已經到了這個系列 ( Server-side website programming first steps ) 的尾聲 ,
我們期許你能夠享受學習這些基礎觀念 , 並且你已準備好選擇框架及開始寫 code

寫在後面

這些基礎知識量好多呀 , 足足佔了半個月的天數 ,
以前寫 http 行為時只會照著教學影片或教學文照做 , 並自行腦補圓其說 。
學完這些基礎觀念後確實有較理解那些語法為何需要那些參數 , 期待後續這些前置作業為我帶來的幫助


上一篇
13日: Website security ( 網站安全性: Cross-Site Request Forgery 、 Other threats )
下一篇
15日: Express web framework (Node.js/JavaScript) ( 前言 )
系列文
還在想要買哪一堂線上課程嗎?培養看文件的習慣吧!用 MDN 文件學後端:NodeJS & MongooseDB30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言