如何停止访问文本文件?

时间:2016-11-24 17:42:50

标签: .htaccess yii

在我的yii项目中,我有ChangelogLicence个文本文件。我知道RBAC并将其应用于每个Controller,但我如何阻止任何访客用户查看这些文本文件。到目前为止,任何人都可以看到这一点。

我在htaccess文件

中使用了这个
<Files ~ "(.txt)">
Order allow, deny
Deny from all
</Files>

但这适用于txt file,这些文件没有extension

1 个答案:

答案 0 :(得分:0)

你的问题是一个小板,所以答案有点笼统。但有几种方法;

选项1。删除更改日志和许可证文件?如果这些是yii安装更改日志和许可证,那么他们不需要留在服务器上。确保您遵守许可要求。

选项2。 你提到了“访客用户”,其中htaccess不会与授权用户的yii很好地集成。您可以将文件移动到包含单行Deny from all的.htaccess的文件夹中。除了在服务器上执行的PHP之外,这会阻止所有人。

您现在可以在控制器中创建方法/操作,只需回显文件内容即可。 file-get-contentsreadfile。将此身份验证包装起来,以便只有非访客用户才能使用该方法。

如果只有两个静态文件,那么可能只是每个的“动作”。如果它的许多文件正在改变名称等,那么你接受一个id到控制器传递给使用scandir的模型并检查file真的exists并吐出你的输出来查看。

选项2.1 如果您具有此访问权限,则可以将文件移动到webhost基础目录的父级,而不是具有.htaccess的文件夹。这意味着您的网络服务器无法提供文件,但PHP仍然可以通过本地路径访问它。

选项3 在.htaccess中,您可以使用AuthType basic并调用您的网络服务器,提示用户输入.htaccess中配置的用户名和密码。这是有问题的,因为界面不是用户友好的,并且很难与您的webapps用户数据库集成。

选项4 .htaccess可以支持其他AuthType,但此时选项2变得更加容易。