只允许包含PHP文件的最佳方法是什么?

Jer*_*ten 12 php

我想确保人们不能在URL中键入PHP脚本的名称并运行它.这样做的最佳方法是什么?

我可以在文件中设置一个包含此文件的变量,然后在包含的文件中检查该变量,但有更简单的方法吗?

nic*_*ckf 12

在我讨论的一些开源应用程序中,包括Joomla和PHPBB,它们在main包含文件中声明了一个常量,然后验证每个包含中是否存在常量:

// index.php
require_once 'includes.php';

// includes.php
define('IN_MY_PROJECT', true);
include 'myInc.php';

// myInc.php
defined('IN_MY_PROJECT') || die("No direct access, plsktnxbai");
Run Code Online (Sandbox Code Playgroud)


Unk*_*ech 7

您可以检查URI并查看是否使用`调用该文件

$_SERVER['SCRIPT_FILENAME']
Run Code Online (Sandbox Code Playgroud)

或者你可以将文件移到公共文件夹之外,这是一个更好的解决方案.