php - PHP 的 "HTTP_X_FORWARDED_FOR"或 "HTTP_CLIENT_IP"与 "REMOTE_ADDR"不同是否有任何合法原因?

标签 php header http-headers ip security

我想为某些地理区域的用户实现某些安全和其他功能。我知道“HTTP_X_FORWARDED_FOR”和“HTTP_CLIENT_IP”可以是伪造的,但是是否有任何实际的合法原因可以解释为什么它们会出现在 header 中,或者与 REMOTE_ADDR 不同?谁能举个例子吗?

如果我只允许那些具有匹配 IP 或空转发 IP 值的服务,我是否会将任何不试图绕过 IP 位置安全的合法客户排除在外?

最佳答案

非匿名代理可能会添加这些 header 。例如,AOL 几年前就这样做过。

但是,您在任何情况下都不能信任它们,除非您控制添加它们的系统。在这种情况下,您需要确保 header 仅在请求的 REMOTE_ADDR 实际上是这些系统之一的情况下使用。这些系统必须始终添加 header 和/或确保在客户端已经发送 header 的情况下正确替换 header 。

关于php - PHP 的 "HTTP_X_FORWARDED_FOR"或 "HTTP_CLIENT_IP"与 "REMOTE_ADDR"不同是否有任何合法原因?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14048700/

相关文章:

php - 如何在 PHP 中删除特定的 HTTP 响应头?

uiimageview - SDWebImage和设置自定义HTTP header ?

php - 使用ajax从数据库实时获取数据?

php - Sum mysql 只适用于第一行或者只是出错

php - 在 Laravel 中为现有数据库中的存储过程、函数和事件创建迁移

php - 从POST到php_self的奇怪的PHP header ()行为-跨环境不一致

php - 防止数据库被外部访问

c++ - 如何在 header 中声明 const?

javascript - Java脚本错误位于第:36,行字符:3,错误:object expected,代码:0, URL :http:\\localhost:6741/content. html

c++ - Symbian 获取内容类型?