網站安全的設定 — Asp .Net 為例Web.config
網站的資訊安全設定可以避免不必要的駭客攻擊行為,
這篇文章主要的目的是針對 ASP .Net 網站設定 web.config ,提出建議
httpCookies
-
httpOnlyCookies = true
這個值表示 Cookie 只會在透過網路 http 時被傳輸,
換句話說,程式 JavaScript 的讀取,該 cookie 不會被讀取
為什麼要這麼做呢? 因為Cookie 通常包含有login session 的資訊,
取得Authentication cookie 可以間接在不需要帳號密碼的情況下,登入該網站。
-
requireSSL = true
這個值表示只有在 SSL 也就是 https 的情況下才會傳輸 cookie 給 Web Server 端。
SSL 會強制將雙方通訊的內容加密,因此可以避免 man in the Middle 的攻擊
-
sessionState
設定如果多久沒有用就必須 timeout。
“regenerateExpiredSessionId” 主要是用來重新產生 Session ID
避免駭客容易猜到,或是使用之前用過的 SessionID
compilation
這個值 debug = true 時,就會把相關的 debug symbols 輸出到網頁錯誤頁面上。
造成太多的內部資訊讓有心的駭客知道。
httpRuntime
-
enableHeaderChecking = true
這個值可以幫助 web Server 檢查基本的 Injection Attacks 或是 XSS (cross-site scripts)
-
enableVersionHeader= false
如果設定為 enableVersionHeader= true. 則該網站會回傳過多的版本資訊給使用者。
間接讓駭客有機會查詢該版本已知的弱點進行攻擊。
customErrors
這個值主要是用來設定當網頁錯誤頁面發生時,如何呈現該問題
因為錯誤頁面的訊息中,往往會透露 Web Server 版本,甚至是程式內部運作的邏輯。
因此,設計一頁用來顯示404 檔案找不到的錯誤,會降低該風險。
如果您的網站也是 ASP .net 建置,不防可以檢視這些設定。
- httpCookies
- compilation
- customErrors
- httpRuntime