2014-01-09 110 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