只允许一个自定义用户代理执行 PHP 代码

Allow only one custom user-agent to execute PHP code

我已经搜索了好几天的简单解决方案,但一无所获。查看有关使用 .htaccess 的大量信息,但没有简单的 PHP 解决方案。

在桌面应用程序项目中使用 mongoose 服务器,并且像大多数其他应用程序一样不支持 .htaccess,因此需要 PHP(and/or 甚至 javascript)的解决方案。

我可以设置自定义用户代理,我只需要允许它执行 PHP scripts/pages.

Mongoose 不像 Windows/MAC 环境中使用的大多数便携式服务器那样使用标准 htaccess 文件。只能使用有限的条目因此我需要一个 PHP 解决方案。我只需要将 "HTTP_USER_AGENT" 的工作解决方案放在 PHP 文件中,以防止人们在没有我的自定义用户代理的情况下访问。

User-Agent 不是用于限制对 PHP 脚本的使用的好参数。至少,您需要使用某种 public API 密钥和私钥来计算内容的 HMAC SHA256 哈希值。

在PHP中,您可以尝试通过IP地址限制用户。同样,这不是好的做法 - 所以要小心。还要确保检查 HTTP_X_FORWARDED_FOR,尤其是当您位于防火墙后面时。

if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
    $ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
    $ip = $_SERVER['REMOTE_ADDR'];
}