apache - 不以正斜杠 / 开头的 Apache 访问日志请求
问题描述
我遇到了一个 IP 地址/未知机器人,它发出了四个 HTTP 请求,设法以以下方式请求四个不同的域名,而第一个字符不是正斜杠 /:
"GET www.example.com
当我测试请求时,http://localhost/www.example.com
我在 Apache 中看到以下内容:
"GET /www.example.com
所有其他请求都以正斜杠开头。机器人是如何提出这样的请求的,我如何重现这个以确定如何处理这样的请求?
引用的 Apache 日志减少为请求方法和 URL,以避免偏离主题的评论。
解决方案
根据HTTP 请求的工作方式,这可以通过向您的 IP 地址发送原始 HTTP 请求并指定上面链接页面中所述的GET
和标头来实现:Host
Request-URI 最常见的形式是用于标识源服务器或网关上的资源。在这种情况下,URI 的绝对路径必须作为 Request-URI 传输(参见第 3.2.1 节,abs_path),并且 URI(授权)的网络位置必须在 Host 头字段中传输。例如,希望直接从源服务器检索上述资源的客户端将创建到主机“www.w3.org”的端口 80 的 TCP 连接并发送以下行:
GET /pub/WWW/TheProject.html HTTP/1.1 Host: www.w3.org
然后是请求的其余部分。注意绝对路径不能为空;如果原始 URI 中不存在任何内容,则必须将其指定为“/”(服务器根目录)。
这可以在 Windows 上使用 PuTTY 或在 Linux/Mac 上使用nc
(有关更多详细信息,请参阅此处的答案:https ://stackoverflow.com/a/3620596/1038813 )
推荐阅读
- javascript - React - 如何返回上一个分页页面?
- django - 如何在 django 中将选项显示为复选框?
- scala - 为什么谓词不返回布尔值?
- java - 如果 NVIDIA 控制面板设置了计算优化,cuCtxCreate 会失败
- python - 程序计算 0 和 1 的个数
- angular - Angular:具有 NgRx 效果的 JWT 更新
- reactjs - ReactJs 组件渲染失败
- python - MNIST 数据集的 Keras 精度不变
- go - redis-cli 如何对在 HLL 或位图上执行 GET 时返回的字符串值进行编码?
- android - 当用户以小写形式输入值时,firebase 搜索查询不起作用,那么它不会返回大写相同的数据