《白帽子將Web安全》摘抄

1.注入攻擊是應用違背了"數據與代碼分離原則"導致的結果。它有兩個條件:一是用戶能夠控制數據的輸入;二是代碼拼湊了用戶輸入的數據,把數據當做代碼執行了。

2.要完成webshell的攻擊,要滿足一下幾個條件:

  (1) 上傳的文件能夠被Web容器解釋執行。所以文件上傳後所在的目錄要是Web容器所覆蓋到的路徑。

  (2) 其次,用戶能夠從Web上訪問這個文件。如果文件上傳了,但用戶無法通過Web訪問,或者無法使得Web容器解釋這個腳本,那麼也不能稱之爲漏洞。

  (3) 最後,用戶上傳的文件若被安全檢查、格式化、圖片壓縮等功能改變了內容,則也可能導致攻擊不成功。

3.設計安全的文件上傳功能

 (1) 文件上傳的目錄設置爲不可執行

 (2) 判斷文件類型

 (3) 使用隨機數改寫文件名和文件路徑

 (4) 單獨設置文件服務器的域名

4.目前黑客們廣泛使用的一種破解MD5後密碼的方法是"彩虹表"。

 彩虹表的思路是收集儘可能多的密碼明文和明文對應的MD5值。這樣只需要查詢MD5值,就能找到該MD5值對應的明文。

5.解決Session Fixation的正確做法是,在登錄完成後,重寫SessionID。

6.完整的CSRF防禦方案,對於Web框架來說有以下幾處地方需要改動:

  (1) 在Session中綁定token。如果不能保存到服務器端Session中,則可以替代爲保存到Cookie裏。

  (2) 在form表單中自動填入token字段,比如<input type=hidden name="anti_csrf_token" value="$token"/>。

  (3) 在Ajax請求中自動添加token,這可能需要已有的Ajax封裝實心的支持。

  (4) 在服務器端對比POST提交參數的token與Session中綁定的token是否一致,已驗證CSRF攻擊。

7.Cookie中的HTTPOnly Flag,告訴瀏覽器不要讓Javascript訪問該Cookie,在Session劫持等問題上有着積極的意義,而且成本非常小。

一般來說,框架會提供一個統一的設置Cookie函數,HttpOnly的功能可以在此函數中實現;如果沒有這樣的函數,則需要統一在HTTP返回頭中配置實現。

8.Web框架本身也是應用程序的一個組成部分,只是這個組成部分較爲特殊,處於基礎和底層的位置。但我們不能迷信於Web框架本身。很多Web框架提供的安全解決方案有時並不可靠,我們仍然需要自己實現一個更好的方案。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章