2016-08-25 239 views
0

我目前正在制作一个WordPress用户系统,该系统应该可以上传到每个用户的私人文件。为了实现这一目标,我使用了一个过滤器,将有问题的文件放在子文件夹中以上载已命名的秘密文件。该过滤器不允许我将文件放在public_html之外,所以我必须这样做。限制访问public_html内的文件夹

现在我计划使用.htacces排除对'secretfiles'文件夹的所有访问,并且在发送给他之前编写一个下载脚本来检查用户是否被允许下载请求的文件。

这是一个安全的方式,使文件真正私人,即使它们放在public_html文件夹中。我的.htaccess代码会是什么?

谢谢!

+0

你有什么试过的?你正在使用的代码在哪里演示了这个问题?为什么过滤器不允许你把文件放在public_html之外?什么是这个过滤器?它有什么作用?您是否[阅读Apache httpd手册](https://httpd.apache.org/docs/2.4/howto/access.html)以了解如何限制访问?您是否在StackOverflow帮助中心阅读了[如何提出问题](http://stackoverflow.com/help/how-to-ask),以便在提问之前获得有关如何询问的一些准则? – Sherif

+0

这当然是可能的。这不是很好,但也许你可以根据自己的话做。是否“安全”是另一个问题,因为我们不知道有哪些方面需要考虑。通常使用简单的网络托管服务器(听起来好像你这样做)可以被认为是安全的,因为在这种情况下你完全无法控制你的文件。 – arkascha

+0

关于您必须配置的确切规则:请先阅读为apache http服务器模块提供的优秀文档。你会找到很好的解释和丰富的例子。 – arkascha

回答

0

您可以使用.htaccess文件拒绝直接访问目录中的文件的所有访问(请参见下面的示例)。用户仍然可以访问这些文件,如果他们被包含在建议的下载脚本中。请注意,下载脚本不应该是重定向。它应该发送文件本身。

Deny from all 
+1

阻止访问文件夹而不是特定的文件扩展名会更有意义吗?例如文件夹索引呢?和其他文件扩展名?大写,例如? – arkascha

+0

你改变了代码,你也应该改变你的描述来匹配它。这是混淆他们现在的方式... – arkascha

+0

@arkascha更新每请求:-) – mrheroux