2013-04-18 104 views
0

我正在爲我的Web應用程序構建基本安全層。我正在驗證我正在採取的步驟。目前的焦點是XSS,所以我在這篇文章中沒有觸及數據庫。這是我迄今所做的:保護我的Web應用程序免受惡意輸入

  1. 用htmlspecialchars()所有的用戶輸入
  2. 黑名單某些關鍵字{「」,「」,「文/ JavaScript的」}:我使用的preg_replace與子這些話「」而是。
  3. 輸出轉義所有動態內容。

所有這些看起來像一個非常平凡的安全層。誰能推薦更好的策略?

回答

1

你的方法太簡單了。 hmmlspecialchars在任何情況下都無濟於事。

這是一個非常好的關於XSS的備忘單,以及當您將字符串轉換爲HTML時出現的問題。

https://www.owasp.org/index.php/Cross-site_Scripting_%28XSS%29

黑名單有它的缺點也。有些瀏覽器例如可以解析

text/javascript 

text/java 
     script 

以同樣的方式。新的行和空格從後者中刪除,因此它被解釋爲像第一個。所以黑名單不會是防彈的方法。

最好的策略是使用一些模板庫,它們已經爲你處理所有這些。庫必須知道字符串的上下文。元素值需要與屬性值不同的轉義。

相關問題