【问题标题】:How do I use .htaccess to limit file uploads to .pdf?如何使用 .htaccess 将文件上传限制为 .pdf?
【发布时间】:2011-09-01 16:17:51
【问题描述】:

我有一个简单的上传表单,允许将文件上传到站点中的文件夹。除了 .pdf 文件外,我不允许上传任何内容。但是,我根本无法修改表单以限制上传。而且我也不能在后端使用 PHP 来限制它。 Javascript 是不安全的,因为用户可以将其关闭。如何使用 .htaccess 将上传限制为 .pdf 文件?

【问题讨论】:

  • javascript 不“安全”是您最不担心的...
  • ……嗯?跳,请解释一下。
  • 如果后端代码不是php,那是什么?
  • @David:没有办法让 pdf 本身安全,甚至无法可靠地过滤掉包含恶意代码、视频、数据等的 pdf……假设你的意思是“解释你的陈述”,而不是“解释自己。”
  • 啊,当然,很公平。但是,这似乎没有多大帮助,因为它与问题完全正交。

标签: .htaccess dns file-structure


【解决方案1】:

据我所知,这是不可能的。但是,您可以限制要返回的文件返回,并强制它们的 mime 类型为 application/pdf,因此它们将被视为 PDF,即使它们不是。如果将其与 JavaScript 结合使用,它将帮助诚实的用户(例如,如果有人不小心选择了 .jpg,他们会立即收到警告),并且会使攻击更加困难。

不过,第三方 mod_upload 似乎可以提供帮助。

要限制输出类型,您可以使用类似于此的.htaccess 文件:

# Prevent request to non-.pdf files
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} ! \.pdf$
RewriteRule (.*) $1 [F]
# Tell the browser that this is a PDF
Header set Content-Type application/pdf
# Hint that the browser shouldn't try to auto-detect the content type
Header set X-Content-Type-Options nosniff

(注意:我是凭记忆写的,所以请务必在信任它们之前对其进行测试……)

【讨论】:

  • 听起来像是一个选择。如何使用 .htaccess 限制返回的文件?
猜你喜欢
  • 2017-08-20
  • 2012-12-06
  • 2016-09-16
  • 2011-10-15
  • 1970-01-01
  • 2019-07-21
  • 2010-12-06
  • 1970-01-01
  • 2011-03-12
相关资源
最近更新 更多