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

Mat*_*iva 5 php kohana

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

<?php defined('SYSPATH') or die('No direct script access.');
Run Code Online (Sandbox Code Playgroud)

假设我将使用.htaccess进行地址重写,这真的有必要吗?是否可以替代.htaccess避免直接访问?这是"深度防守"的好习惯吗?

zom*_*bor 10

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

  • +1很高兴让Kohana Framework Developer自己解决这个问题. (2认同)

The*_*per 5

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

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

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

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