【摘要】 考必过小编为大家整理了关于“PHP安全:单一入口”的信息,希望可以帮助到大家,下面我们就一起来看下“PHP安全:单一入口”的具体内容吧!
PHP项目使用单一入口,用一个入口文件处理所有的HTTP请求和返回所有的请求数据。例如,不管是列表页还是文章页,都是从浏览器访问index.php文件,这个文件就是这个应用程序的单一入口。
1、实现方式
单一入口实现起来很简单,可以在访问index.php时使用一个特定的参数。例如index.php?action=list就是访问列表页,而index.php?action=single则是访问文章页。单一入口index.php的简单实现代码如下所示。
define('APP_NAME','APP'); // 入口常量
$modular="index"; // 默认模块
$active=SecurityFilter($_GET['action']); // 安全检测
if(!empty($active)) {
$modular=$active;
}
include('controller/'.$modular.'.php'); // 根据$action参数调用不同的代码文件,从而满足单一入口实现对应的不同功能
2、单一入口更安全
单一入口应用程序的所有请求都是通过index.php接收并转发到功能代码中的,所以在index.php中能完成许多实际工作。由于所有的请求都由index.php接收,因此可以进行集中的安全性检查。如果不是单一入口,那么研发人员就必须记住在每一个文件的开始加上安全性检查代码(当然,安全性检查可以写到另一个文件中,只需要用include语句即可)。
与安全性检查类似,在入口里,还可以对URL参数和POST进行必要的检查和特殊字符过滤、记录日志、访问统计等各种可以集中处理的任务。这样就可以看出,由于这些工作都被集中到index.php来完成,可以减轻维护其他功能代码的难度,对用户的请求更好地进行控制,很大程度上防止攻击者的非法入侵。单一入口可以使程序可读性更高,更容易维护,相对产生更少的BUG和安全漏洞,推荐使用这种方式进行项目研发和部署。为了防止恶意用户从非单一入口进入,需要在入口文件开头使用define定义入口常量。
define('APP_NAME', 'APP');//定义入口常量在非入口文件中用defined来检测用户是否从正常入口进入。如果没有检测到入口常量,则必须让PHP脚本立即停止执行。defined('APP_NAME') or exit(); // 入口常量检测,如果未定义,直接退出程序
以上就是考必过小编为大家整理的关于“PHP安全:单一入口”的相关信息,想了解更多考试最新资讯可以关注考必过。