php - 如何可靠地拒绝直接访问服务器上的 PHP 文件?
问题描述
首先,让我说,我知道已经有一些文章已经发布了这种方式,但我觉得他们中的很多人使用从$_SERVER
like访问HTTP变量的方法$_SERVER["HTTP_REFERER"]
来确保身份验证。但据我了解,很多时候这些都可以被欺骗。有没有简单的方法可以可靠地拒绝直接访问我的 PHP api 并且只允许从我的 Angular 前端向它发出请求?
解决方案
这将取决于您的网络服务器。
例如,在 Apache 中,您将创建一个 .htaccess 文件,然后将指令添加到您的主 conf 文件,以包含 .php 文件所在目录的 .htaccess。您将文件包含在主目录的子目录中脚本,然后可以从主脚本调用“受保护”文件中的那些方法。
但是,基本上,您需要将脚本放在一个子目录中,然后使用网络服务器配置来拒绝对该脚本的网络请求的访问。
那就是如果它是一个普通的脚本文件。
如果出于某种原因,您想使用 PHP 限制对数据文件的访问,请将其作为文件的第一行并将其命名为 .php:
'; <?php die('Access denied'); ?>
然后是文件中的 JSON/data。它可以被 PHP 作为直接调用读取,但永远不会被 PHP 执行器读取。
推荐阅读
- mysql - 在 MySQL 中查找每个外键的最新行
- r - 如何在循环中为 aov() 添加 Bonferroni 调整(在 R 中)
- c# - WPF 无法关闭应用程序实例以再次运行它
- django - 如何将 ImageField 限制为 Django Admin 中的几个选项
- javascript - 2 个不同的 php 脚本 2 个不同的登录。如何进行一次登录?
- sql - .merge() 在这个查询中做了什么?
- mysql - 选择与具有特定值的其他行关联的行
- python - 熊猫数据框类型的问题
- php - 如何使页面内容依赖于选定的行值
- r - R如何考虑不同的值将起点-终点矩阵转换为网络