2

在 kohana 框架中,在.htaccess文件中写入

# 保护应用程序和系统文件不被查看

RewriteRule ^(?:application|modules|system)\b.* index.php/$0 [L]

好的,但是为什么在每个 php 文件中都需要这种安全性:

<?php defined('SYSPATH') or die('No direct access allowed.'); ?

攻击者已经不能.php直接打开任何文件了吧?(因为原因不受.htaccessRewriteRule 的保护)

4

4 回答 4

2

辛比:这是一个后备。仅此而已,但我需要更多字符才能发布此答案

于 2013-01-23T12:20:28.700 回答
2

似乎开发人员希望确保没有文件可以访问,无论 .htaccess 是否有效(即 disabled mod_rewrite)。

但是对于只包含类定义或返回/定义配置数组的文件,无论如何它都非常没用,因为它们不输出任何东西。

于 2013-01-23T12:21:20.363 回答
2

从框架开发人员的角度来看,您无法确定您的产品将运行的网络服务器是否正确设置(例如,.htaccess/RewriteEngine 未由 AllowOverride 启用或没有 mod_rewrite ...)。

这种“第二次检查”是为了​​确保框架即使在主机设置错误的情况下也不会泄露敏感数据。

于 2013-01-23T12:28:05.550 回答
1

.htaccess仅适用于 启用的Apachemod_rewrite。如果服务器不满足这些条件中的任何一个,这些SYSPATH检查就会派上用场。

注意:不是每个用户都可以使用Aapche作为网络服务器。并不是每个用户都可以访问.htaccess.

现在还有其他选择。比如,nginx。

于 2013-01-23T12:33:24.067 回答