我正在使用 php 记录我的网站访问者的 IP 地址以及一些其他信息 ($content),以便我可以计算访问者的数量。我正在使用以下代码:<?phppublic static function logContent(array $content = null){ try { $myFile = fopen("visitors.txt", "a"); $txt = "IP: "; if (isset($_SERVER['HTTP_CLIENT_IP'])) $ipAddress = $_SERVER['HTTP_CLIENT_IP']; else if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) $ipAddress = $_SERVER['HTTP_X_FORWARDED_FOR']; else if (isset($_SERVER['HTTP_X_FORWARDED'])) $ipAddress = $_SERVER['HTTP_X_FORWARDED']; else if (isset($_SERVER['HTTP_FORWARDED_FOR'])) $ipAddress = $_SERVER['HTTP_FORWARDED_FOR']; else if (isset($_SERVER['HTTP_FORWARDED'])) $ipAddress = $_SERVER['HTTP_FORWARDED']; else if (isset($_SERVER['REMOTE_ADDR'])) $ipAddress = $_SERVER['REMOTE_ADDR']; else $ipAddress = 'UNKNOWN'; $txt .= $ipAddress; $txt .= " Time: " . date("Y-m-d h:i:s", time()); $txt .= "\n"; if (!empty($content) && is_array($content)) { foreach ($content as $k => $v) { $txt .= "$k : "; $txt .= $v; $txt .= "\n"; } $txt .= "\n"; } fwrite($myFile, $txt); fclose($myFile); } catch (\Exception $e) { } }?>这段代码工作正常。通常,我有如下条目:IP: 36.80.227.XX Time: 2020-06-19 08:23:52IP: 191.252.61.XX Time: 2020-06-19 11:25:02IP: 191.252.61.XX Time: 2020-06-19 11:25:02这是类似于针对 Java 的 MySQL 注入的某种恶意注入攻击吗?我是否需要留意任何可疑情况并修补我的 Apache 服务器以提高安全性?
1 回答
哈士奇WWW
TA贡献1799条经验 获得超6个赞
据我所知, HTTP_X_FORWARDED_FOR 标头是由客户端/代理发送的,您不对 $_SERVER['HTTP_X_FORWARDED_FOR'] 的内容进行任何控制。
所以是的,有人尝试过 SQL 注入,但在这种情况下,它不敏感(只是输出到文本文件中)。在输出到文件之前,您必须检查 $ipAddress 的内容。
编辑:您可以通过以下方式重现此行为:
curl -H 'X-Forwarded-For: 1.1.1.1' https://www.example.com/mypage curl -H 'X-Forwarded-For: <SOME RANDOM INPUT>' https://www.example.com/mypage
希望这有帮助
繁华开满天机
TA贡献1816条经验 获得超4个赞
这听起来像是可能的注入攻击。虽然这里讨论的是 joomla 设置并且涉及 2015 年,但签名还是值得一看的。
我可能会建议检查日志以查找任何可疑活动。
- 1 回答
- 0 关注
- 102 浏览
添加回答
举报
0/150
提交
取消