找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 164|回复: 0

[cms教程] ECshop中defined('IN_ECS')的实现原理

[复制链接]

该用户从未签到

发表于 2015-6-29 10:41:27 | 显示全部楼层 |阅读模式

您需要 登录 才可以下载或查看,没有账号?立即注册

×
在PHP中经常看到如下代码
         
        if (!defined('IN_ECS'))  
        {  
            die('Hacking attempt');  
        }  
        实现的原因以及原理如下:
            ecshop里的有些.php页是不需要用户通过url直接访问的,用来被其它页调用的,例如/includes/init.php,就不需要直接访问,通过url访问你的网址/includes/init.php是无意义的,所以我们在可以直接方问的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'))
        {
            die('Hacking attempt');
        }
        这样当直接访问init.php里就会显不
        Hacking attempt
         
        从页起到禁止访问的目的,而其它页面在调用init.php时是正常的
        这样做更安全
        这也是一种设计思想,防止其它文件不正常调用或者防止前台直接访问文件。
回复

使用道具 举报

网站地图|页面地图|文字地图|Archiver|手机版|小黑屋|找资源 |网站地图

GMT+8, 2024-10-7 10:15

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表