WEB前端安全——Cookie安全、密碼安全、點擊劫持

一 Cookie安全

Cookie的安全和CSRF是有緊密聯繫的,CSRF攻擊本質就是利用Cookie存儲的信息。下面介紹幾個重要的Cookie的屬性。前端

1 Secure

指定Cookie是否只能經過https協議訪問,通常的Cookie使用HTTP協議便可訪問,若是設置了Secure,則只有當請求是使用https協議時cookie纔會被髮送到服務端。算法

2 HttpOnly

若是在Cookie中設置了"HttpOnly"屬性,那麼經過程序(JS腳本、Applet等)將沒法讀取到Cookie信息。這是防護XSS的一個方法。數據庫

3 SameSite

SameSite-cookie的目的是嘗試阻止CSRF以及XSS攻擊,能夠防止cookie被非同源的網站利用。可是這個屬性有瀏覽器兼容性的問題。其有兩個值:瀏覽器

Strict 嚴格模式,代表這個 cookie 在任何狀況下都不可能做爲第三方 cookie,絕無例外。安全

Lax 寬鬆模式,比 Strict 放寬了點限制。假如請求是同步請求(改變了當前頁面或者打開了新頁面)且同時是個 GET 請求,則這個 cookie 能夠做爲第三方 cookie。假如請求是異步請求,或者頁面跳轉是經過表單的 post 提交觸發的,則不會發送。服務器

二 密碼安全

1 密碼泄露渠道

  • 數據庫泄漏
  • 服務器入侵
  • 傳輸過程被竊聽

2 密碼安全要求

  • 存儲安全:嚴禁明文存儲
  • 傳輸安全:嚴禁明文傳輸、限制頻率

嚴禁明文傳輸的意義是防止傳輸過程當中明文密碼被竊聽,嚴禁明文存儲的意義是防止明文密碼被盜取或泄漏。cookie

3 傳輸安全

HTTP在傳輸過程當中是明文的,這意味着咱們網站的信息是會被泄漏的,也意味着攻擊者能夠對咱們的網站進行劫持,例如注入廣告。解決方案是升級HTTPS,HTTPS是加密傳輸的。固然,HTTPS也有許多的設置,有一些加密方式也是不安全的,這須要開發者進行選擇。異步

4 密碼加固方法

  • 單向變換(哈希算法)——防泄漏
  • 變換的複雜度要求(屢次變換)——防猜解
  • 密碼複雜度要求(加鹽)——防猜解

密碼加固主要是經過哈希算法(即摘要算法,例如MD5/SHA)對密碼進行處理,這種算法是不可逆的,可是能夠經過彩虹表進行破解,因此對密碼進行一次哈希處理是不夠安全的,能夠經過屢次哈希處理以及屢次不一樣的哈希算法來提升破解難度。也能夠在哈希處理前,給密碼加鹽(在密碼固定位置中加入特定的字符串)來提升密碼的複雜度。post

5 前端加密

前端加密的意義有限,能防止密碼明文在傳輸過程當中被竊聽和泄漏,可是沒法阻止用戶資料被盜取或被登陸,意思是前端加密的密碼只能保證實文密碼不泄漏,可是沒法保證前端加密後的密碼不泄漏。網站

三 點擊劫持

點擊劫持,又稱界面假裝攻擊,攻擊者通常經過透明的iframe(目標網站),覆蓋在攻擊者的網頁上,並誘導用戶進行操做。這種通常會利用XSS或CSRF漏洞來進行攻擊。解決方案是經過設置HTTP頭X-Frame-Options,來防止網頁被Iframe加載。它有三個值:

DENY:瀏覽器會拒絕當前頁面加載任何frame頁面

SAMEORIGIN:frame頁面的地址只能爲同源域名下的頁面

ALLOW-FROM origin:容許frame加載的頁面地址

四 後記

本文簡單地介紹了Cookie安全、密碼安全、點擊劫持這三個方面值得注意的地方,若是想了解更詳細的前端安全,能夠閱讀本文的大哥篇: WEB前端安全——XSS和CSRF

相關文章
相關標籤/搜索