php接收不到url传值_PHP安全:单一入口

一次性付费进群,长期免费索取教程,没有付费教程。

进微信群回复公众号:微信群;QQ群:460500587

 教程列表  见微信公众号底部菜单 |   本文底部有推荐书籍 

d5251ff50c39dd0f2d5b807058ba233a.png

微信公众号:计算机与网络安全

ID:Computer-network

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(); // 入口常量检测,如果未定义,直接退出程序

微信公众号:计算机与网络安全

ID:Computer-network

【推荐书籍】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值