XSS跨站腳本攻擊在Java開發中防范的方法


1. 防堵跨站漏洞,阻止攻擊者利用在被攻擊網站上發布跨站攻擊語句不可以信任用戶提交的任何內容,首先代碼里對用戶輸入的地方和變量都需要仔細檢查長度和對”<”,”>”,”;”,”’”等字符做過濾;其次任何內容寫到頁面之前都必須加以encode,避免不小心把html tag 弄出來。這一個層面做好,至少可以堵住超過一半的 XSS 攻擊。
2. Cookie 防盜
首先避免直接在cookie 中泄露用戶隱私,例如email、密碼等等。其次通過使cookie 和系統ip 綁定來降低cookie 泄露后的危險。這樣攻擊者得到的cookie 沒有實際價值,不可能拿來重放。
3. 盡量采用POST 而非GET 提交表單
POST 操作不可能繞開javascript 的使用,這會給攻擊者增加難度,減少可利用的
跨站漏洞。
4. 嚴格檢查refer
檢查http refer 是否來自預料中的url。這可以阻止第2 類攻擊手法發起的http 請求,也能防止大部分第1 類攻擊手法,除非正好在特權操作的引用頁上種了跨站訪問。
5. 將單步流程改為多步,在多步流程中引入效驗碼
多步流程中每一步都產生一個驗證碼作為hidden 表單元素嵌在中間頁面,下一步操作時這個驗證碼被提交到服務器,服務器檢查這個驗證碼是否匹配。
首先這為第1 類攻擊者大大增加了麻煩。其次攻擊者必須在多步流程中拿到上一步產生的效驗碼才有可能發起下一步請求,這在第2 類攻擊中是幾乎無法做到的。
6. 引入用戶交互
簡單的一個看圖識數可以堵住幾乎所有的非預期特權操作。
7. 只在允許anonymous 訪問的地方使用動態的javascript。
8. 對於用戶提交信息的中的img 等link,檢查是否有重定向回本站、不是真的圖片等
可疑操作。
9. 內部管理網站的問題
很多時候,內部管理網站往往疏於關注安全問題,只是簡單的限制訪問來源。這種網站往往對 XSS 攻擊毫無抵抗力,需要多加注意。安全問題需要長期的關注,從來不是一錘子買賣。 XSS 攻擊相對其他攻擊手段更加隱蔽和多變,和業務流程、代碼實現都有關系,不存在什么一勞永逸的解決方案。此外,面對 XSS,往往要犧牲產品的便利性才能保證完全的安全,如何在安全和便利之間平衡也是一件需要考慮的事情。
web應用開發者注意事項:
1.對於開發者,首先應該把精力放到對所有用戶提交內容進行可靠的輸入驗證上。這些提交內容包括URL、查詢關鍵
字、http頭、post數據等。只接受在你所規定長度范圍內、采用適當格式、你所希望的字符。阻塞、過濾或者忽略其它的
任何東西。
2.保護所有敏感的功能,以防被bots自動化或者被第三方網站所執行。實現session標記(session tokens)、
CAPTCHA系統或者HTTP引用頭檢查。
3.如果你的web應用必須支持用戶提供的HTML,那么應用的安全性將受到災難性的下滑。但是你還是可以做一些事來
保護web站點:確認你接收的HTML內容被妥善地格式化,僅包含最小化的、安全的tag(絕對沒有JavaScript),去掉任何
對遠程內容的引用(尤其是樣式表和JavaScript)。為了更多的安全,請使用httpOnly的cookie。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM