Web應用安全十大主動安全措施
本文中筆者與大家分享下在WEB應用安全方面的一些心得。
1、Content-Security-Policy
Content Security Policy是Mozilla為了提高瀏覽器安全性開發的一套新的安全機制,該機制讓網站可以定義內容安全政策,明確告知瀏覽器哪些內容是合法的,讓瀏覽器得以避開惡意內容。CSP主要鎖定解決XSS及跨站冒名請求(Cross Site Request Forgery)等網絡應用程序漏洞。強烈建議用戶將該告警打開,你可以看到哪些數據在干壞事。
在Web上,此策略是通過HTTP頭或meta元素定義的。在Chrome擴展系統中,不存在這兩種方式。擴展是通過manifest.json文件定義的: { …, “content_security_policy”: “[POLICY STRING GOES HERE]“ … } 關于CSP語法的詳細信息,請參考W3C的 Content Security Policy 規范。
2、設置X-Frame
所有的現代瀏覽器都支持X-Frame-Options HTTP頭,這個頭允許頁面被iframe使用時是否正常渲染。通過使用X-FRAME-OPTIONS偽指令,Web開發人員可以立即幫助IE8用戶減輕來自各種Web 應用程序攻擊的威脅。
使用X-Frame-Options 有兩種可能的值:
DENY :該頁無法顯示在一個框架中. SAMEORIGHT :頁面只能顯示在頁面本網站的框架中.
換句話說,通過[IFRAME]/[FRAME] 框架加載頁面,如果你指定DENY,不僅會嘗試加載在一個 框架頁面失敗,其它網站加載也會失敗。 另一方面,如果你指定 SAMEOptions ORIGHT, 其它網站加載會失敗。
3、防止CSRF跨站攻擊
建議在每個表單驗證的地方加上隨機的token,這樣能夠防止用戶被CSRF攻擊。
4、DAL (data/database access layer)
DALS http://en.wikipedia.org/wiki/Data_access_layer能夠有效的防止SQL注入,但是很少有公司知道如何正確的使用,雖然DALS改造比較復雜,但是因為每一個單一的數據庫調用需要的修改和插入等操作都在DAL層操作,所以從底層上杜絕的SQL注入的產生。
5、文件系統禁止寫入
正確的設置CONFIG文件,設置網站的用戶無法在文件系統上寫入文件。
6、安全日志審計
日志信息能夠很快的幫助用戶發現攻擊者的蹤跡,可以通過一些日志分析系統對IIS、APACHE、NGINX、WINDOWS、LINUX等日志進行實時的分析,如OSSEC、ZABBIX等,構建攻擊特征庫,發現攻擊行為第一時間產生告警。
7、加密存儲從之前的CSDN、世紀佳緣等著名站點被脫褲事件中可以看出,很多站點仍然采用明文的方式存儲用戶密碼,采用一個過時的HASH算法,攻擊者可以很輕松的獲取到用戶的相關信息,而有的站點很多的功能依賴于現有的數據庫設計和相關的結構化數據,導致后期更改用戶的哈希算法非常棘手。
8、SSL、COOKIE設置HTTPONLY和STS任何一個網站,如果不支持SSL加密傳輸,非常容易遭受到中間人攻擊。COOKIE沒有設置HTTPONLY和STS,也非常容易遭受到跨站攻擊。
9、構建安全框架構建一個適合企業自己的安全框架,程序員在寫程序的時候調用安全框架,過濾用戶的一切有害輸入,如XSS、SQLI、命令注入等等,可以從一定程度上降低安全風險。
10、設置autocomplete=off和強密碼AutoComplete控件就是指用戶在文本框輸入前幾個字母或是漢字的時候,該控件就能從存放數據的文本或是數據庫里將所有以這些字母開頭的數據提示給用戶,供用戶選擇,提供方便。但是在方便的同時也可能帶來一定的安全風險,攻擊者可能獲取用戶鍵入的一些歷史信息,比如密碼等。