猿问

阻止直接访问php包含文件

阻止直接访问php包含文件

我有一个php文件,我将使用它作为一个包含。因此,我想抛出一个错误,而不是当它被直接访问时执行它,输入URL而不是包含它。

基本上,我需要在php文件中进行如下检查:

if ( $REQUEST_URL == $URL_OF_CURRENT_PAGE ) die ("Direct access not premitted");

有什么简单的方法吗?


catspeake
浏览 366回答 3
3回答

米脂

对于一般的“在Apache服务器上运行的PHP应用程序,您可能控制也可能不完全控制”情况下,最简单的方法是将包含放在目录中,并拒绝访问.htaccess文件中的该目录。为了避免Google搜索的麻烦,如果您正在使用Apache,请将它放在一个名为“.htaccess”的文件中,在您不希望被访问的目录中:Deny from all如果你真的完全控制了服务器(现在甚至比我第一次写这个答案的时候更常见),最好的方法是把你想要保护的文件放在你的Web服务器正在服务的目录之外。所以如果你的应用程序在/srv/YourApp/,将服务器设置为从/srv/YourApp/app/并把包括在/srv/YourApp/includes因此,实际上没有任何URL可以访问它们。

跃然一笑

将此添加到只希望包含的页面中。<?phpif(!defined('MyConst'))&nbsp;{ &nbsp;&nbsp;&nbsp;die('Direct&nbsp;access&nbsp;not&nbsp;permitted');}?>然后在包含它的页面上添加<?php define('MyConst',&nbsp;TRUE);?>

饮歌长啸

我有一个文件,当它被包含时,我需要采取不同的行动,而当它被直接访问时(主要是一个print()VSreturn())下面是一些修改过的代码:if(count(get_included_files())&nbsp;==1)&nbsp;exit("Direct&nbsp;access&nbsp;not&nbsp;permitted.");所访问的文件始终是包含的文件,因此=1。
随时随地看视频慕课网APP
我要回答