在我的yii
项目中,我有Changelog
和Licence
个文本文件。我知道RBAC
并将其应用于每个Controller
,但我如何阻止任何访客用户查看这些文本文件。到目前为止,任何人都可以看到这一点。
我在htaccess
文件
<Files ~ "(.txt)">
Order allow, deny
Deny from all
</Files>
但这适用于txt file
,这些文件没有extension
答案 0 :(得分:0)
你的问题是一个小板,所以答案有点笼统。但有几种方法;
选项1。删除更改日志和许可证文件?如果这些是yii安装更改日志和许可证,那么他们不需要留在服务器上。确保您遵守许可要求。
选项2。
你提到了“访客用户”,其中htaccess不会与授权用户的yii很好地集成。您可以将文件移动到包含单行Deny from all
的.htaccess的文件夹中。除了在服务器上执行的PHP之外,这会阻止所有人。
您现在可以在控制器中创建方法/操作,只需回显文件内容即可。 file-get-contents或readfile。将此身份验证包装起来,以便只有非访客用户才能使用该方法。
如果只有两个静态文件,那么可能只是每个的“动作”。如果它的许多文件正在改变名称等,那么你接受一个id到控制器传递给使用scandir的模型并检查file真的exists并吐出你的输出来查看。
选项2.1 如果您具有此访问权限,则可以将文件移动到webhost基础目录的父级,而不是具有.htaccess的文件夹。这意味着您的网络服务器无法提供文件,但PHP仍然可以通过本地路径访问它。
选项3 在.htaccess中,您可以使用AuthType basic并调用您的网络服务器,提示用户输入.htaccess中配置的用户名和密码。这是有问题的,因为界面不是用户友好的,并且很难与您的webapps用户数据库集成。
选项4 .htaccess可以支持其他AuthType,但此时选项2变得更加容易。