【问题标题】:Codeigniter define basepath or exitCodeigniter 定义基本路径或退出
【发布时间】:2012-04-17 22:29:56
【问题描述】:

我注意到演示 codeigniter 项目的控制器上方的一小段代码,想知道它做了什么以及我是否应该使用它。

defined('BASEPATH') OR exit('No direct script access allowed');

如果我应该使用它应该在哪里使用它?控制器?楷模?两个都?等等。

【问题讨论】:

    标签: security codeigniter controller


    【解决方案1】:

    为了激活 codeigniter 框架,该站点必须使用 www.blahblah.com/index.php/params 访问。通过首先通过 index.php,框架被激活,各种类和诸如此类的东西通过 PHP 运行。然后框架查看 url 的参数并激活特定的控制器。这行代码确保框架已正确“启动”并且用户只是不尝试在 Web 服务器上运行单个 php 文件。因为该 php 文件假定框架中的类已经被声明,所以单独运行一个控制器文件会严重失败,并且有可能导致安全漏洞。不允许直接访问。

    【讨论】:

    • +1 非常准确。还应注意它使单元测试变得痛苦。
    • 哦,好吧,这段代码也属于模型的顶部还是只是控制器?谢谢
    • 如果您采用 CI 方式,它几乎属于 CI 安装中的每个脚本。不过请注意@AlienWebGuy 关于测试的评论......
    • 很好的答案,我自己从来没有真正理解过这一点,但现在我明白了。
    • 那么,这会阻止控制器重新运行/重新声明吗?在安全方面,如果我们使用 Apache 并且在 application 文件夹中有一个.htaccess with only a "deny from all" line,它会阻止对所有控制器的访问......这不是比拥有这些行更实用吗在所有控制器/模型中?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-09
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 2016-01-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多