Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 禁用用户上载htaccess文件_Php_Apache_.htaccess_Mod Rewrite - Fatal编程技术网

Php 禁用用户上载htaccess文件

Php 禁用用户上载htaccess文件,php,apache,.htaccess,mod-rewrite,Php,Apache,.htaccess,Mod Rewrite,我正在创建一个网站,允许用户上传任何类型的文件,并在以后下载 所以我有一个秘密文件夹,所有文件都保存在那里,并通过php脚本返回 我想禁用所有脚本执行。因此,我将以下代码添加到机密文件夹中的.htaccess <Files *> SetHandler default-handler </Files> SetHandler默认处理程序 它工作得很好。但是现在如何防止用户上传.haccess文件..我可以通过php脚本中与.htaccess匹配的文件名进行阻止。

我正在创建一个网站,允许用户上传任何类型的文件,并在以后下载

所以我有一个秘密文件夹,所有文件都保存在那里,并通过php脚本返回

我想禁用所有脚本执行。因此,我将以下代码添加到机密文件夹中的.htaccess

<Files *>
    SetHandler default-handler
</Files>

SetHandler默认处理程序

它工作得很好。但是现在如何防止用户上传.haccess文件..我可以通过php脚本中与.htaccess匹配的文件名进行阻止。但是黑客上传.htaccess文件还有其他解决方法吗?

你可能可以在父目录下的htaccess文件中添加一个
AllowOverride None
(或到conf,指向子目录),这将阻止解析htaccess文件(不阻止上载,它们将被忽略)。或者您可以在那里创建一个.htaccess文件,并更改权限,使其不会被web服务器覆盖。
www-data
user(将文件放在目录中的用户)应该不同于
任何内容(创建.htaccess文件的人)@JonathanKuhn:我试过像你说的那样使用..但它也不像jpg文件那样提供文件..
AllowOverride
只是告诉apache不允许
htaccess
文件覆盖当前配置。当你说“不提供文件”时,apache会忽略
htaccess
文件你的意思是什么?它是否提示下载所有内容?它是否抛出错误(甚至可能检查错误日志)?它是否将二进制图像数据显示为文本?实际上,apache不应该访问这些文件。它们应该位于webroot之外,您应该使用php访问这些文件并按文件类型发送正确的标题。那么htaccess/php/任何文件都不会成为问题。正确,apache不会尝试解析任何文件以及加载g脚本。您仍然希望设置正确的权限,例如
400
(仅向所有者读取,以防止其他人访问文件),然后使用php脚本读取文件。您甚至可以通过类似哈希的方式命名文件,然后使用stats(类型、处理程序)存储哈希文件名PHP可以处理发送标题以查看特定的文件类型(图像),甚至强制下载提示。mod_rewrite也可以将文件隐藏在webroot之外。