我是CodeIgniter的新手,我想知道限制直接访问您的视图文件是否是一种好习惯?显然它们将包含很多依赖于变量的php代码以及未从控制器传递给它们的内容,因此如果直接访问它,php代码很容易出现错误吗?
奖金问题:为什么应用程序文件夹中的帮助程序,库,挂钩等文件夹为空?
感谢您的时间。
答案 0 :(得分:5)
无人限制访问其视图文件的主要原因是它们会导致致命错误或显示无用的页面。
如果人们想要尝试计算你的文件夹结构和文件名,他们将获得......绝对没有任何回报。你必须编写一些非常疯狂的代码才能使视图不安全。
如果您真的想要保护它们,请继续。
在视图的顶部,输入:
<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); ?>
<h1>Whatever</h1>
答案 1 :(得分:1)
我从未见过有人限制访问查看文件,但我没有看到任何理由你无法这样做。为了更好的安全性,您应该将您的系统和应用程序文件夹放在Web根目录下,并将index.php指向一个目录到这些文件夹。这样,有人直接访问您的文件的可能性很小。
至于文件夹为空的原因。应用程序文件夹是您放置代码的位置。系统文件夹中的帮助程序,库和模型文件夹中包含源代码。目标是只将代码放在应用程序中,这样当您升级到未来版本的CodeIgniter时,您不会破坏您实现的任何代码或功能。您还可以通过执行此处所说的内容来重载codeigniter函数...
http://codeigniter.com/user_guide/general/creating_libraries.html
并向下滚动到“扩展本机库”
答案 2 :(得分:1)
用户, 如果您在共享主机上并且不允许访问除wwwroot文件夹之外的任何内容,则可以创建子文件夹(将其命名为“private”)并编写其.htaccess文件以拒绝对此子文件夹的所有请求。然后,您可以将codeigniter的系统和应用程序文件夹放在此子文件夹中,并将index.php文件夹放在常规位置(更改index.php中的“system”和“application”变量以正确反映新路径)和那种方式所有代码都不能直接访问。 : - )
编辑: 关于文件夹问题,它是一个范围的东西。帮助程序,库,挂钩应用程序文件夹用于特定于应用程序的项目。也许是您自定义创建的,或者可能是从第三方下载的。但这个想法是你有“系统范围”的项目,然后你有“应用程序范围”的项目。拥有应用程序文件夹允许您扩展系统范围的项目以满足特定的应用程序需求(请参阅更多@ http://codeigniter.com/user_guide/general/creating_libraries.html)。这对于一个应用程序来说没有多大意义,但是如果你的安装有多个应用程序,那么这就是它的用武之地。