ECshop中defined(‘IN_ECS’)的实现原理

2021-09-07 0 771
  • 在 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 时是正常的
  • 这样做更安全
  • 这也是一种设计思想,防止其它文件不正常调用或者防止前台直接访问文件。

本文章已结束,如转载请注明:汇站网 » ECshop 中 defined(‘IN_ECS’)的实现原理

收藏 (0)

微信支付 微信扫一扫

支付宝支付 支付宝扫一扫

打赏二维码
点赞 (0)

站长资源下载中心-找源码上汇站

常见问题
  • 如果付款后没有弹出下载页面,多刷新几下,有问题联系客服!
查看详情
  • 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。
查看详情

相关文章

联系官方客服

为您解决烦忧 - 24小时在线 专业服务