【发布时间】:2015-04-03 23:08:27
【问题描述】:
我刚刚被指派完成一个用户访问受限的应用程序的开发。最初的开发者和我一样都是合作学生。
查看他的代码后,用户似乎只访问过 index.php,而其他 php 页面在验证用户身份并确定请求后使用 Include 语句调用。
即
include __DIR__ . DIRECTORY_SEPARATOR . 'pages' . DIRECTORY_SEPARATOR . $page . 'Logic.php';
但是,我注意到他的网络应用程序的包含文件中有一条注释,
// Since this page can be accessed if the user knows its
// URL, we must check if user has been authenticated and
// authorized through index.php
// todo
他意识到存在一个漏洞,即可能猜测某些文件名称的用户可以获得未经身份验证的访问权限,他建议在每个包含文件的开头执行额外的授权检查。
我对 Apache 有所了解,我知道它可以限制用户对某些文件和/或目录的访问。但是,如果我这样做了,我不确定它是否足够,并且我是否还应该在 index.php 中的验证检查之外编写一些验证检查。
【问题讨论】:
-
如果有问题的 PHP 文件不应该被用户直接访问,使用 apache 的 .htaccess 文件禁止访问就足够了。检查 PHP 文件本身可能仍然有用,例如,如果网站被移动到不支持 .htaccess 的主机。
标签: web-applications php webserver apache