阻止对文件的直接脚本访问

Sve*_*ven 5 php security

目前我这样做:

在一个文件中,让我们把它叫做file_one.php,我有

define( 'ROOT', realpath( dirname( __FILE__ ) ) );

require_once( ROOTPATH . '/file_two.php' );
Run Code Online (Sandbox Code Playgroud)

file_two.php我身上,然后在顶部:

if ( ! defined( 'ROOT' ) )
    exit;
Run Code Online (Sandbox Code Playgroud)

因此file_two.php只有在ROOT定义时才能访问内容,这种情况发生在file_one.php.如果你试图file_two.php直接访问它将无法正常工作,是不是?这种方法有什么缺陷吗?

Nie*_*sol 1

将约翰·康德的评论转换为答案:

确保文件无法在浏览器中访问的最佳方法是将其放在 Webroot 之外。

您应该有一个名为wwwpublic_html类似名称的文件夹,其中包含您网站的文件。好吧,在包含该文件的文件夹中,您可以放置​​一个includes文件夹并在其中放置仅脚本访问的文件。这样,它们就完全无法从网络访问,但脚本仍然可以访问它们。