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

时间:2016-02-11 17:18:37

标签: php user-agent

我已经搜索了几天的简单解决方案并且没有任何结果。查看有关使用.htaccess的大量信息,但没有简单的PHP解决方案。

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

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

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

1 个答案:

答案 0 :(得分:0)

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'];
}