我有一个简单的上传表单,允许将文件上传到站点中的文件夹。我不想允许上传.pdf文件以外的任何内容。但是,我无法修改表单来限制上传。而且我不能在后端使用PHP来限制它。 Javascript是不安全的,因为用户可以将其关闭。如何使用.htaccess限制上传到.pdf文件?
答案 0 :(得分:2)
据我所知,这是不可能的。但是,您可以限制返回的文件,并强制其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
(注意:我是从记忆中写过的,所以一定要先测试它们才能相信它们......)