CIA知道么 ?
- 機密性(Confidentiality)
- 完整性(Integrity)
- 可用性(Availiability)
常見的web攻擊有 XSS ,CSRF;
xss 到底是什么 ?
黑客在你的瀏覽器中插入一段惡意JS腳本,竊取你的隱私信息【這里泛指cookie登錄信息】,冒充你的身份進行操作,這就是XSS攻擊(Cross-Site-Scripting,跨站腳本攻擊)。補充一下,為什么不叫CSS,是因為CSS是重疊樣式,為了有所區別,即XSS。
XSS的類型有哪些 ?
- 發射型XSS(非持久型)
- 基於DOM的XSS
- 存儲型XSS(持久性)
- 反射型
惡意JS腳本屬於用戶發送給網站請求中的一部分,隨后網站又將這些部分返回給用戶,惡意腳本在頁面中被執行,一般發生在前后端一體的應用中,服務端邏輯會改變最終的網頁代碼。
- 基於DOM型
目前更流行前后端分離的項目,反射型XSS無用武之地,但這種攻擊不需要經過服務器,網頁本身的JS也是可以改變HTML,黑客正是利用這一點來實現的插入惡意腳本。
- 存儲型
持久型XSS,黑客將惡意JS腳本長期保存在服務端數據庫,用戶一旦訪問相關頁面數據,惡意腳本就會被執行,常見於搜索,微博,社區貼吧評論等。
XSS攻擊的結果是什么 ?
- 盜取用戶cookie
- 未授權操作
- 修改DOM
- 刷浮窗廣告
- 發動XSS蠕蟲攻擊
- 劫持用戶行為,進一步滲透內網
如何防護XSS攻擊:
- 一切用戶輸入皆不可信,在輸出時進行驗證
- 將HTML元素內容,屬性以及URL請求參數,css值編碼
- 當編碼影響業務時,使用白名單規則進行檢測和過濾
- 使用W3C提出的CSP(內容安全策略),定義域名白名單
- 設置cookie的httpOnly屬性
CSRF攻擊是什么 ?
英文全稱是Cross-Site-Request-Forgery 即 跨站請求偽造,顧名思義 CSRF攻擊就是黑客引誘用戶打開黑客的網站,利用用戶的登錄狀態發起跨站請求。
降維解釋: 攻擊者誘導受害者進入第三方網站,在第三方網站中,向被攻擊網站發送跨站請求,利用受害者在被攻擊網站已經獲取的注冊憑證,繞過后台的用戶驗證,達到冒充用戶被攻擊的網站執行某項操作的目的。
CSRF攻擊的實現方式:
- 最容易實現的是GET請求,一般進入黑客網站后,可以通過設置 img 的 src屬性來自動發起請求。
- 在黑客網站中,構造隱藏表單來自動發起POST請求。
- 通過引誘鏈接誘惑用戶點擊觸發請求,利用 a 標簽 href。
如何防范CSRF攻擊:
- 針對實際情況,設置 Cookie 的 SameSite 屬性為 Strict 或 Lax。
- 服務端驗證請求來源(Referer,Origin)。
- 使用CSRF Token ,服務端隨機生成返回給瀏覽器的Token。
- 加入二次驗證(獨立的支付密碼)。
CSRF 與 XSS 有什么區別:
CSRF攻擊不需要將惡意代碼注入用戶頁面,僅僅是利用服務端的漏洞, 和用戶的登錄狀態來實施攻擊。
CSRF攻擊成本比XSS低,用戶每天都要訪問大量網頁,無法確定每一個網頁的合法性,從用戶的角度來說,無法徹底防止CSRF攻擊。
最后說兩個加密算法:
- 對稱加密算法
對稱加密算法就是加密和解密使用同一個秘鑰,簡單粗暴。
常見經典對稱加密算法有 DES,AES,IDEA,國密 SM1,國密SM4。
- 非對稱加密算法
非對稱加密就是加密和解密使用不同的秘鑰,發送方使用公鑰對信息加密,接收方收到密文后,使用私鑰解密,主要解決了密鑰分發的難題。
簽名就是私鑰加密
經典非對稱加密算法有 RSA,ECC和SM2。