Kohana:是否有必要检查是否定义了SYSPATH?

时间:2010-02-13 17:32:49

标签: php kohana

我是CodeIgniter用户,我正在看看Kohana。我注意到的第一件事是,在文档中,每个代码段都以:

开头
<?php defined('SYSPATH') or die('No direct script access.');

假设我将使用.htaccess进行地址重写,这真的有必要吗?对于避免直接访问的purpouse,它是.htaccess的替代品吗?这是“深度防御”的好习惯吗?

2 个答案:

答案 0 :(得分:10)

如果您使用.htaccess文件来保护系统文件,则不需要这样做。但是,由于kohana必须支持非.htaccess使用,我们将其放在核心系统文件中以获得一些基本安全性。

答案 1 :(得分:5)

它用于确保您只能通过index.php(定义了SYSPATH)访问脚本。

如果您的脚本文件位于Web可访问的位置,那么这是另一层安全性。此检查将阻止人们执行http://example.com/application/classes/controllers/welcome.php

等类

实际上,文件应该在webroot之外,index.php引用了正确的位置,但这不可能一直存在,所以他们有检查。

如果你有.htaccess保护这些目录,我想你可以放弃它,但它没有任何成本,所以你可以保留它。