为了账号安全,请及时绑定邮箱和手机立即绑定

阻止直接访问php包含文件

阻止直接访问php包含文件

PHP
catspeake 2019-07-03 14:13:33
阻止直接访问php包含文件我有一个php文件,我将使用它作为一个包含。因此,我想抛出一个错误,而不是当它被直接访问时执行它,输入URL而不是包含它。基本上,我需要在php文件中进行如下检查:if ( $REQUEST_URL == $URL_OF_CURRENT_PAGE ) die ("Direct access not premitted");有什么简单的方法吗?
查看完整描述

3 回答

?
米脂

TA贡献1836条经验 获得超3个赞

对于一般的“在Apache服务器上运行的PHP应用程序,您可能控制也可能不完全控制”情况下,最简单的方法是将包含放在目录中,并拒绝访问.htaccess文件中的该目录。为了避免Google搜索的麻烦,如果您正在使用Apache,请将它放在一个名为“.htaccess”的文件中,在您不希望被访问的目录中:

Deny from all

如果你真的完全控制了服务器(现在甚至比我第一次写这个答案的时候更常见),最好的方法是把你想要保护的文件放在你的Web服务器正在服务的目录之外。所以如果你的应用程序在/srv/YourApp/,将服务器设置为从/srv/YourApp/app/并把包括在/srv/YourApp/includes因此,实际上没有任何URL可以访问它们。


查看完整回答
反对 回复 2019-07-03
?
跃然一笑

TA贡献1826条经验 获得超6个赞

将此添加到只希望包含的页面中。

<?phpif(!defined('MyConst')) {
   die('Direct access not permitted');}?>

然后在包含它的页面上添加

<?php
define('MyConst', TRUE);?>


查看完整回答
反对 回复 2019-07-03
?
饮歌长啸

TA贡献1951条经验 获得超3个赞

我有一个文件,当它被包含时,我需要采取不同的行动,而当它被直接访问时(主要是一个print()VSreturn())下面是一些修改过的代码:

if(count(get_included_files()) ==1) exit("Direct access not permitted.");

所访问的文件始终是包含的文件,因此=1。


查看完整回答
反对 回复 2019-07-03
  • 3 回答
  • 0 关注
  • 363 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信