2014-01-09 109 views
1

在對我們的asp.net web應用程序進行安全審查期間,我們獲悉有些輸入字段不限制服務器端的用戶輸入的長度。在執行報告中表示,此漏洞可用於消耗服務器或數據庫中可能導致拒絕服務攻擊的大量資源。用戶輸入的無限制長度

我想問一下這裏有什麼辦法來解決這個問題。當然,我們可以在網絡服務器端爲每個領域實施驗證,例如拋出一些異常並拒絕輸入是否超過某個預定義的值。但我很好奇,如果有更多的其他方式如何做到這一點。也許在web.config或IIS服務器級別的某些配置,某些全局處理程序等。

+0

什麼ü想要的。你是否想限制輸入控件的字符長度? – Raghubar

+0

是的,我想限制用戶輸入的字符數量達到某個最大值。通常用戶不會輸入更多內容,例如單表單字段中有100個字符。正如發現所說的,用戶不應該能夠輸入大量的數據,例如在輸入字段中輸入大於1K的字符。我正在尋找如何在服務器端進行驗證的選項。理想情況下通過配置或其他所有領域的一般方式。 – mybrave

+0

你可以設置控件的maxlength =「30」屬性。 – Raghubar

回答

1

檢出maxRequestLength在web.config中的設置。

指定輸入流緩衝閾值的限制(以KB爲單位)。此限制可用於防止例如由用戶向服務器發佈大型文件而導致的拒絕服務攻擊。 默認值爲4096(4 MB)。

<configuration> 
    <system.web> 
     <httpRuntime maxRequestLength="1024" /> 
    </system.web> 
</configuration> 

這將是比限制每個單獨的領域,因爲它是保護您的應用程序作爲一個整體,因爲它聽起來像他們還沒有發現,很容易受到任何特定輸入一個更好的解決方案。

如果您希望這僅適用於您的應用程序的某些部分,你可以使用<location>元素添加替代:

<location path="Attachments/Upload"> 
    <system.web> 
     <httpRuntime maxRequestLength="20480" /> 
    </system.web> 
</location> 
+0

感謝您的建議,我仍然想做一些測試,但在這個級別上的更改很可能是不可能的,因爲應用程序支持上傳附件,這是允許它的關鍵設置。 – mybrave

+0

有關如何針對此方案配置它的解答已更新。 – SilverlightFox

+0

謝謝 - 剛剛測試建議configuratin和它看起來promissing。 – mybrave