Rumah > pembangunan bahagian belakang > tutorial php > define常量如何防止地址栏直接访问后台文件的

define常量如何防止地址栏直接访问后台文件的

WBOY
Lepaskan: 2016-06-13 13:37:46
asal
1257 orang telah melayarinya

define常量怎么防止地址栏直接访问后台文件的
define是不能跨页面的,但是最近看一个开源的PHP项目它是这样的:比如a.php :直接define('IN_TM', TRUE);
b.php直接if(!defined('IN_TM'))
{
exit('Access Denied');
}
if($_SESSION["admin"]!="Silence")
{
include template('login.htm');
  exit;
}。。。。。
就完全没用include包含!但是我这样模拟的时候define是不能跨页面的!它还有什么设置使得'IN_TM'在另一个页面有效吗?
类似于DISCUZ的防止地址栏直接访问后台文件又是怎么实现的呢?

------解决方案--------------------
如果你能确认在判断之前没有文件被显式的嵌入的话
那么他就是利用了 php.ini 中的 auto_prepend_file 

其实只要项目能运行, 你只需 打印出 get_included_files 的结果就知道什么文件被嵌入了

------解决方案--------------------
这个肯定有用include包含,只是你没看到
------解决方案--------------------
但是我这样模拟的时候define是不能跨页面的!它还有什么设置使得'IN_TM'在另一个页面有效吗?

b.php
if(!defined('IN_TM')) 
{
exit('Access Denied');
}

a.php
define('IN_TM', TRUE);
include 'b.php';

访问 b.php 必须通过访问 a.php 完成,否则就 Access Denied

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan