簡體   English   中英

如何拒絕惡意請求

[英]How to decline malicious requests

我最近接手了一個應用程序,我們最近做了一個appscan,我得到了一個標記為易受攻擊的項目。 報告建議的補救任務是拒絕惡意請求。 報告稱apps可以嘗試:

對原始請求應用了以下更改:將HTTP標頭設置為“ http://bogus.referer.ibm.com

我在第一次運行appscan時標記了這一點,然后輸入代碼來檢查是否提供了urlreferer,如果是,則確保它與url中的主機相同,否則終止用戶的會話並重定向到登錄頁面。 我們再次運行appscan,它再次被標記,我不知道如何處理這個問題。

當我查看報告時,它顯示它被放入偽造的引用者,服務器響應302狀態,重定向,然后一個請求被輸入登錄服務器響應202,給予它。 Appscan推理說:

在不同的會話中發送了兩次相同的請求,並收到了相同的響應。 這表明沒有任何參數是動態的(會話標識符僅在cookie中發送),因此應用程序容易受到此問題的影響。

但是響應總是不一樣嗎? 如果檢查失敗302后跟202,則無論用戶如何,都會出現重定向和登錄頁面。 有誰知道如何處理這個? 我猜我可以將用戶的會話ID放入重定向網址,這樣appscan就會看到它是否不同,但我認為必須有另一種方式。

這是一個.net 4應用程序。 使用Session對象跟蹤用戶,如果重要,則不使用表單身份驗證。

設置viewstate用戶密鑰,參考: https//security.stackexchange.com/questions/19152/how-does-viewstate-protect-against-csrf這使得在不訪問最新頁面的情況下發送查詢變得更加困難和你的餅干。

使用HttpException返回403(您可能需要做一些額外的工作,也不要變成500)

拋出HttpException總是會發回HTTP 500錯誤?

應用程序掃描具有高度可識別的簽名 - 它們在同一分鍾內拋出100個異常。 作為錯誤記錄基礎結構的一部分,您可能希望在同一分鍾內說出5個異常之后呈現驗證碼,或者呈現應用掃描引發應用程序永不拋出的錯誤的驗證碼(如非常長的URL,查詢.jsp .aspx應用程序中的文件)。 一旦appcanner被ID了,你就想通過重定向到錯誤頁面來毒害他們的會話,直到他們解決了一個問題。 這樣做的缺點是,在應用程序拋出異常之后,用戶將被提供capcha的可能性很小,比如當用戶將>放在文本框中時出現安全性錯誤。 您可能希望也可能不希望為所有應用掃描程序實現此功能,可能只是惡意程序,取決於組織中的激勵。

ngx_dynamic_limit_req_module ref

ngx_dynamic_limit_req_module用於動態鎖定IP並定期釋放

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM