[英] Prevent direct access to a php include file
我有一个php文件,我将专门使用它作为include.因此,我想抛出一个错误,而不是在直接通过输入URL而不是被包含来访问它时执行它.
基本上,我需要在php文件中进行如下判断:
if ( $REQUEST_URL == $URL_OF_CURRENT_PAGE ) die ("Direct access not premitted");
有什么简单的方法可以做到这一点吗?
我有一个php文件,我将专门使用它作为include.因此,我想抛出一个错误,而不是在直接通过输入URL而不是被包含来访问它时执行它.
基本上,我需要在php文件中进行如下判断:
if ( $REQUEST_URL == $URL_OF_CURRENT_PAGE ) die ("Direct access not premitted");
有什么简单的方法可以做到这一点吗?
对于一般的"在Apache服务器上运行的PHP应用程序,您可以完全控制,也可以不完全控制"情况,最简单的方法是将您的include放入一个目录中,并拒绝您对该目录的访问.htaccess文件.为了省去人们在谷歌上搜索的麻烦,如果您使用的是Apache,请将其放在一个名为".htaccess"的文件中,该文件位于您不希望访问的目录中:
Deny from all
如果你真的完全控制了服务器(现在即使是小应用也比我第一次写这个答案时更常见),最好的方法是将你想要保护的文件粘贴到你的web服务器所服务的目录之外.因此,如果你的应用程序在/srv/YourApp/
中,请将服务器设置为提供/srv/YourApp/app/
中的文件,并将包含的内容放在/srv/YourApp/includes
中,这样就没有任何URL可以访问它们.
Laravel:使用 HttpClient 的多个作业(job)的解决方案?
WooCommerce CSS 帮助更改订单备注输入框的大小
如何创建一个单独的类以在表中创建新记录并通过控制器上的接口调用它
htaccess 重写 url 以便仅在根目录而不是子目录中删除 php 扩展
是什么导致我的 Laravel 8 应用程序中出现此查询生成器错误?
PHP 7.2 函数 create_function() 已弃用
Laravel 5 显示 ErrorException file_put_contents 无法打开流:没有这样的文件或目录
artisan 迁移错误“找不到类'Doctrine\\DBAL\\Driver\\PDOMySql\\Driver'”,