ECshop中defined('IN_ECS')的实现原理

匿名 (未验证) 提交于 2019-12-03 00:18:01
在PHP中经常看到如下代码
if (!defined('IN_ECS')) {     die('Hacking attempt'); } 

实现的原因以及原理如下:

所以我们在可以直接方问的php里加上define('IN_ECS', true);

例如在index.php中有如下代码,一开头就设置IN_ECS的值为true然后才去加载init.php这样init.php文件中IN_ECS的值就为true,这时候引入cls_mysql.php也可以引入,因为此时IN_ECS的值也是为true

define('IN_ECS', true);  require(dirname(__FILE__) . '/includes/init.php');

在页面直接访问

出现这样的结果


在不能直接访问的php里加上
if (!defined('IN_ECS'))
{

}
这样当直接访问init.php里就会显不
Hacking attempt
从页起到禁止访问的目的,而其它页面在调用init.php时是正常的

这样做更安全

这也是一种设计思想,防止其它文件不正常调用或者防止前台直接访问文件。
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!