代码之家  ›  专栏  ›  技术社区  ›  Magnus Smith

上传照片-如何保证我们网站的安全/稳定

  •  3
  • Magnus Smith  · 技术社区  · 16 年前

    我的网站希望用户上传他们的照片……但我如何保护我们的服务器不受伤害?只允许JPG应该避免病毒问题,但是如果有人选择了一个10GB的文件,那会减慢整个网站的速度吗?

    我们使用的是经典的ASP和IIS6(很抱歉,但事实就是如此,不能改变这一点!)。以前,我们使用一个名为Persits的公司的DLL来处理上载。但是,如果我们将此讨论扩展到其他语言/技术,这将对其他人有所帮助。

    ASPS在完成上传之前无法检测文件的大小,所以这是一个难题。或者我可以在开始传输之前检查HTTP头中的内容长度吗?

    Q1。有没有其他方法可以滥用上传工具?
    Q2。如何限制危险以保持站点运行和服务器安全?

    谢谢您。

    6 回复  |  直到 10 年前
        1
  •  2
  •   Katy    16 年前

    在“持续”中,可以设置用户可以上载的最大文件大小:

    Upload.SetMaxSize 100000, True
    

    上面的“真”表示如果超过最大大小,文件将被拒绝。如果设置为false,则文件将被终止。

    http://www.aspupload.com/object_upload.html#SetMaxSize

        2
  •  2
  •   Tim C    16 年前

    如果您使用的是ASP.NET,则可以在web.config(或machine.config)中指定文件的最大大小,并且在上载过程中超出该大小后,ASP.NET将引发错误。也就是说,如果您指定了一个4MB的限制,并且有些人试图上传100MB,一旦超过4MB,.net就会抱怨。

    有问题的财产是 最大请求长度 ,根据msdn“指定输入流缓冲阈值的限制(以KB为单位)。此限制可用于防止拒绝服务攻击,例如,用户向服务器发送大文件。”

    例如。

    <configuration>
      <system.web>
        <httpRuntime maxRequestLength="4000" ....
    

    不过,我不确定在经典的ASP中是否存在等价物。

        3
  •  0
  •   Daniel    16 年前

    有一个伟大的组件,使用闪存上传文件。过来看

    http://www.codeproject.com/KB/aspnet/FlashUpload.aspx

        4
  •  0
  •   Daniel A. White    16 年前

    这似乎强制文件上载大小: http://www.aspupload.com/

    我不知道它是怎么处理的。

        5
  •  0
  •   Magnus Smith    16 年前

    我刚刚在IIS中找到了一篇关于如何使用名为“AspMaxRequestEntityAllowed”的设置限制大小的文章: http://www.banmanpro.com/support2/File_Upload_limits.asp

    但是,它不起作用-我的服务器已经设置为200K,但我们目前正在上传1MB文件,好吗!

        6
  •  0
  •   Chris Hynes    16 年前

    通过使用Microsoft的URLScan工具,您可以在IIS级别拒绝过大的请求,直到它们到达您的应用程序: http://technet.microsoft.com/en-us/security/cc242650.aspx

    对于IIS6,您可能甚至不需要它。您应该能够将maxrequestentityallowed和aspmaxrequestentityallowed元数据库属性设置为所需的最大值,此时请求将被切断。