一、客戶端腳本安全 (1)跨站腳本攻擊(XSS): XSS攻擊,通常指黑客通過“html註入” 篡改了網頁,插入了惡意的腳本,從而在用戶瀏覽網頁的時候,控制用戶瀏覽器的一種攻擊。 最常見的XSS攻擊就是通過讀取瀏覽器的Cookie對象,從而發起“cookie劫持”,當前用戶的登錄憑證存儲於伺服器的s ...
一、客戶端腳本安全
(1)跨站腳本攻擊(XSS):
XSS攻擊,通常指黑客通過“html註入” 篡改了網頁,插入了惡意的腳本,從而在用戶瀏覽網頁的時候,控制用戶瀏覽器的一種攻擊。
最常見的XSS攻擊就是通過讀取瀏覽器的Cookie對象,從而發起“cookie劫持”,當前用戶的登錄憑證存儲於伺服器的session中,
而在瀏覽器中是以cookie的形式進行存儲的,cookie被劫持後,意味著攻擊者可以不通過密碼而直接登錄系統。我們也可以直接在瀏覽器中輸入腳本javascript:alert(document.cookie)來獲取當前cookie值。
為cookie植入HttpOnly標識。
解決方案:<Context docBase="E:\tomcat\apache-tomcat-6.0.24/webapps/netcredit" path="/netcredit" reloadable="false" useHttpOnly="true"/>
或者:在web.xml 中 加入
<session-config>
<cookie-config>
<http-only>true</http-only>
</cookie-config>
</session-config>
二、伺服器端應用安全
1、SQL註入攻擊:
Sql註入的的兩個關鍵條件:第一個是用戶能夠控制輸入;第二個是原本程式要執行的代碼,拼接了用戶輸入的數據。PreparedStatement與Statement
2.關閉web伺服器的錯誤回顯功能,這樣可以防止攻擊者對系統進行攻擊後,通過回顯的詳細錯誤信息對攻擊內容進行調整,對攻擊者提供極大的便利。
我們在項目的web.xml文件中添加以下示例代碼
<error-page>
<error-code>400</error-code>
<location>/error400.jsp</location>
</error-page>
3.資料庫自身使用最小許可權原則,系統程式不使用最高許可權的root對資料庫進行連接,而是使用能滿足系統需求的最小許可權賬戶進行資料庫連接,
而且多個資料庫之間使用不同的賬戶,保證每個資料庫都有獨立對應的賬戶。
4、認證與會話管理
登錄使用驗證碼、限制密碼錯誤次數,如果超過次數可以限制該ip一段時間內不可登錄。
給Session設置了一個有效時間,來保證在有效時間後Session將自動銷毀,以防止Session長連接所帶來的安全隱患
<session-config>
<session-timeout>30</session-timeout>
</session-config>
三、文件上傳漏洞
文件上傳漏洞是指用戶上傳了一個可執行的腳本文件,並通過腳本文件獲得了執行伺服器端命令的能力,這樣將會導致嚴重的後果。
可以通過控制對上傳文件詳細的格式驗證控制腳本文件上傳;如果以上驗證都成功通過,本系統在對文件進行存儲時會將文件名進行重命名處理,
並且設置相應的web伺服器,預設不顯示目錄。因為文件上傳如果需要執行代碼,則需要用戶能夠訪問到這個文件,因此使用隨機數改寫了文件名,
將極大的增加攻擊的成本,甚至根本無法成功實施攻擊。