我是CodeIgniter用户,我正在看看Kohana。我注意到的第一件事是,在文档中,每个代码段都以:
开头<?php defined('SYSPATH') or die('No direct script access.');
假设我将使用.htaccess进行地址重写,这真的有必要吗?对于避免直接访问的purpouse,它是.htaccess的替代品吗?这是“深度防御”的好习惯吗?
答案 0 :(得分:10)
如果您使用.htaccess文件来保护系统文件,则不需要这样做。但是,由于kohana必须支持非.htaccess使用,我们将其放在核心系统文件中以获得一些基本安全性。
答案 1 :(得分:5)
它用于确保您只能通过index.php(定义了SYSPATH)访问脚本。
如果您的脚本文件位于Web可访问的位置,那么这是另一层安全性。此检查将阻止人们执行http://example.com/application/classes/controllers/welcome.php
等类实际上,文件应该在webroot之外,index.php引用了正确的位置,但这不可能一直存在,所以他们有检查。
如果你有.htaccess保护这些目录,我想你可以放弃它,但它没有任何成本,所以你可以保留它。