【发布时间】:2014-04-27 08:51:27
【问题描述】:
我的 MVC 目录结构中有一个私有文件夹,我想拒绝所有访问。访问此文件夹(和包含文件)的唯一方法是仅通过包含。
对于公用文件夹,任何人都应该能够访问它,因为那是我的视图。
根 index.php 是我的入口文件,它应该能够包含和执行私有 index.php 脚本。
谁能帮助我或为我指明正确的方向来实现这一目标?
private
model
controller
core
config.ini.php
index.php
...
public
stylesheets
signup.php
login.php
index.php
...
index.php
【问题讨论】:
-
将
index.php移动到public文件夹中,因为它是您的入口文件(前端控制器)。将您的网络服务器的 webroot 配置为public文件夹。完成(你应该首先做到这一点)。你有什么问题? -
你也写.htaccess。到目前为止你做了什么?除了我第一条评论中的建议之外,您还可以将您的网络服务器配置为拒绝访问某些资源(或者最好只允许访问您希望允许访问的资源。这样就不容易出错)
-
因为我无法直接访问服务器设置,所以我认为 htaccess 是我最好的选择。
-
您可以在该域的托管设置中指定 webroot 吗?如果是,请先发表评论。如果没有,仍然使用第一条评论,然后查看此处(和类似内容):stackoverflow.com/q/7945795/367456 - stackoverflow.com/q/4970903/367456 - ...
-
好吧,比方说,最好不要在 webroot 中包含配置文件,这样它们就不会被托管。听起来像是前置条件而不是后置条件。还要确保您的应用程序可以安全地抵御目录遍历攻击 - 阅读此处了解更多信息:owasp.org/index.php/Path_Traversal
标签: php .htaccess directory-permissions