【问题标题】:What files to restrict in a PHP upload script?在 PHP 上传脚本中限制哪些文件?
【发布时间】:2016-06-14 15:01:08
【问题描述】:

我用 PHP 编写了一个简单的上传脚本,允许用户上传文件。在他们的上传文件夹中,我放置了一个包含一行的 .htaccess 文件:

Deny From All

显然,我将限制用户上传.htaccessphp.ini。我不想限制不必要的文件,.htaccess 文件应该防止恶意 php 文件或 JavaScript。我还需要限制哪些其他文件才能 100% 确保我不会在上传脚本中留下任何漏洞?

【问题讨论】:

  • 我将取决于您对上传文件的实际操作。您认为 `.htaccess` 提供了什么保护?
  • 我将对文件做各种各样的事情,为此我需要考虑很多事情。稍后我将处理上传文件的处理。目前,这行$file = "zzz".$file; 和我的.htaccess 文件会提供100% 的保护吗?
  • 我看不出它提供了任何保护 - 但又一次,这完全取决于您对文件的处理方式
  • 你不能只在后面处理它。您对它们的处理是如何保护它们的基础。
  • paragonie.com/blog/2015/10/… 请参阅:保护文件上传脚本的无效策略

标签: php security file-upload upload restrict


【解决方案1】:

我认为 .php 将是一个好的开始。除此之外记得用mime_content_type检查文件类型。

【讨论】:

  • 为什么我需要限制.php 文件?我的.htaccess 不能防止其中的恶意脚本吗?
  • @DanBray,我只是在回答您的问题“在 php 上传中要限制哪些文件?”。但是对你来说更重要的是检查文件的内容,这样没有人上传一个.jpg扩展名的php文件并在你的服务器上执行它。例如,可以访问所有文件的 shell。
【解决方案2】:

我决定做一个简单的重命名。

$file = "zzz".$file;

以后可以在处理文件之前删除“zzz”。现在我什至不需要限制.htaccessphp.ini 被上传。

【讨论】:

  • 在你觉得太安全之前别忘了看看这个关于可执行映像的演示文稿,兄弟defcon.org/images/defcon-15/dc15-presentations/…
  • 在允许显示任何上传的图像之前,我会详细了解这一点。我确信安全处理上传需要考虑很多事情,但就我的上传脚本本身而言,我认为这应该是安全的$file = "zzz".$file;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-15
  • 1970-01-01
  • 2015-02-26
  • 1970-01-01
相关资源
最近更新 更多