【问题标题】:Website Security - Limiting the number of allowed photo uploads网站安全 - 限制允许上传的照片数量
【发布时间】:2014-01-02 04:08:59
【问题描述】:

我有一个网站,人们可以在其中上传照片并进行裁剪。上传代码如下:

    <form action="scripts/ajax/ajax_photo_processing_functions.php?photos=photoUpload method="post" enctype="multipart/form-data">
        <input type="file" name="file"><br>
    </form>

我想问我是否应该关注人们上传(或使用脚本/bot/hack/)上传无数照片,直到服务器/php 文件系统 100% 满并可能导致服务器摔倒。

我知道这是否是一个愚蠢的问题,但我只是想了解其他人是否认为这是一个问题以及他们可能会采取什么措施?

谢谢

【问题讨论】:

  • 好吧,这完全取决于你。如果您想让他们上传无限数量的文件,并且如果他们滥用此优势,(尽管这非常困难),您可以做您担心的事情。
  • 这同样适用于任何类型的 POST 请求:stackoverflow.com/questions/2364840/…

标签: php security upload photo


【解决方案1】:

您需要计算每个用户在会话中(在服务器上)上传的照片数量。如果达到阈值,则将其阻止一段时间。但是,您需要确保只有人类才能开始会话。使用众所周知的技术来执行此操作,例如强制用户登录服务,可能必须先解决验证码...

【讨论】:

    【解决方案2】:

    防止过度上传

    • 限制用户在特定时间段内可以上传的照片数量。例如:单个IP每10分钟只能上传5张图片。
    • 限制每张照片的大小。例如:每张照片 2mb。

    释放不必要的文件

    • 即使我们可以阻止用户快速上传文件,他们也可以上传许多未使用的照片,最终,它会建立起来。您可以有一个程序来检查任何照片是否有 3 个月未使用,然后将其删除。

    防止重复照片

    • 您可以对每张上传的图片进行哈希处理。如果有新上传的图片,检查现有图片和新上传的图片内容是否相同。

    防止大规模攻击

    • 即使限制可以上传的图片数量有帮助,如果他们使用 10,000 个不同的 IP 进行攻击来上传图片,则无济于事。可以有一个全局计数器,如果最近10分钟内上传图片超过1000张,开启全局验证码,即用户需要输入验证码上传图片。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-18
      • 1970-01-01
      • 2012-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-08
      相关资源
      最近更新 更多