首页 > 解决方案 > 如何可靠地拒绝直接访问服务器上的 PHP 文件?

问题描述

首先,让我说,我知道已经有一些文章已经发布了这种方式,但我觉得他们中的很多人使用从$_SERVERlike访问HTTP变量的方法$_SERVER["HTTP_REFERER"]来确保身份验证。但据我了解,很多时候这些都可以被欺骗。有没有简单的方法可以可靠地拒绝直接访问我的 PHP api 并且只允许从我的 Angular 前端向它发出请求?

标签: php

解决方案


这将取决于您的网络服务器。

例如,在 Apache 中,您将创建一个 .htaccess 文件,然后将指令添加到您的主 conf 文件,以包含 .php 文件所在目录的 .htaccess。您将文件包含在主目录的子目录中脚本,然后可以从主脚本调用“受保护”文件中的那些方法。

但是,基本上,您需要将脚本放在一个子目录中,然后使用网络服务器配置来拒绝对该脚本的网络请求的访问。

那就是如果它是一个普通的脚本文件。

如果出于某种原因,您想使用 PHP 限制对数据文件的访问,请将其作为文件的第一行并将其命名为 .php:

'; <?php die('Access denied'); ?>

然后是文件中的 JSON/data。它可以被 PHP 作为直接调用读取,但永远不会被 PHP 执行器读取。


推荐阅读