1. Apache JServ protocol service漏洞(服務器問題)
問題出在Tomcat的8009端口,錯誤的提示是8009端口上運行着tcp協議。
解決辦法:只能是通過關閉8009端口來實現,但是關閉端口之后對Tomcat有影響。
2. HTML form without CSRF protection
問題出在表單提交沒有保護,可以偽造一個表單進行提交。
解決辦法:在提交表單的jsp界面產生一個隨機數,把這個隨機數放到session中傳遞,同時也放到form表單中以input的方式傳遞(注意這里要把input的type類型設置為hidden,並且一定要放在提交按鈕之前),然后在后台,對比從前台傳遞的參數和從session中獲得參數,如果不一致,說明是偽造的表單。拒絕訪問。(此方法我以register.jsp進行了驗證,有效果。)
3. Slow Http Denial of Service Attack(服務器問題)
問題出在http頭部的限定長度過大,攻擊者可以通過鏈接服務器之后,緩慢的發送數據來保持持續鏈接,這樣來控制它的最大並發量。
解決辦法:修改Tomcat的server.xml的8080端口,把里面的connectionTimeout=”20000”修改成connectionTimeout=”8000”,問題解決,但不確定對程序有無影響,目前來看沒發現有其他影響。還可以修改http頭部的大小限制,因為已經解決問題,就沒有再去修改頭部大小。
4. User cerdentials are sent in clear text(感覺不用修改)
問題是說表單中的數據一明文的形式傳遞,但是掃描到的都是在表單中用post的方式傳遞,沒有找到解決此漏洞的方法。
5. Application error message 和 Error message on page
問題出在程序出現500錯誤時,有關服務器的問題,會展現在瀏覽器的頁面上Tomcat的路徑,這樣就會把服務器的路徑暴露在攻擊者面前。
解決辦法:當出現500錯誤時,自定義界面。在Tomcat的web.xml里,最下面也就是</web-app>之前添加如下內容
<error-page>
<error-code>500</error-code>
<location>/error500.html</location>
</error-page>
然后,在在程序的web-inf下面新建一個error500.html,自定義當出現500錯誤時的界面。
