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


Allow only one custom user-agent to execute PHP code

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

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

我可以设置一个自定义的用户代理,我只需要允许它执行PHP脚本/页面。

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

User-Agent 不是用于限制对 PHP 脚本使用的好参数。至少,您需要将某种公共 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'];
}