我有一个简单的上传表单,允许一个文件被上传到网站的一个文件夹。我不想允许除.pdf文件外的任何文件被上传。但是,我根本不能修改表单来限制上传。我也不能在后端使用PHP来限制它。Javascript是不安全的,因为用户可以将其关闭。如何使用.htaccess将上传限制为.pdf文件?
发布于 2011-09-02 00:26:27
据我所知,这是不可能的。然而,你可以限制返回的文件,并强制它们的mime类型为application/pdf,这样即使它们不是JavaScript,它们也会被视为.jpg。如果这一点与PDF结合使用,它将帮助诚实的用户(例如,如果有人无意中选择了PDF,他们将立即收到警告),这将使攻击变得更加困难。
不过,第三方的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(注意:我是从内存中编写的,所以在信任它们…之前一定要对它们进行测试)
https://stackoverflow.com/questions/7273239
复制相似问题