Apache access.log:未经授权的用户能够请求我的本地主机开发机器上的文件

Apache access.log:未经授权的用户能够请求我的本地主机开发机器上的文件

我的开发电脑(Windows 10)上安装了 Apache2.4

查看我的 Apache24\logs\access.log 文件,我注意到以下可疑条目:

www.-----.com - - [01/Jan/2018:10:45:19 -0200] "GET /SOME-PERSONAL-DEV-PROJECT/admin/ HTTP/1.1" 200 21061
www.-----.com - - [02/Jan/2018:07:04:00 -0200] "GET /phpmyadmin/sql.php?server=1&db=-----&table=-----&pos=0&token=ea
www.-----.com - - [02/Jan/2018:07:04:01 -0200] "GET /phpmyadmin/sql.php?server=1&db==-----&&table==-----&&pos=0&token=ea
www.-----.com - - [02/Jan/2018:07:04:08 -0200] "GET /phpmyadmin/index.php?ajax_request=1&recent_table=1&token=ea

我在本地主机上有“phpmyadmin”,另外“SOME-PERSONAL-DEV-PROJECT”是我的本地主机中的另一个文件夹,用于个人网络开发工作。

“www.-----.com” 是一个知名的广告网络域名,我知道它们与一些可疑的东西有关。

所以在我的 httpd.conf 文件中我有以下配置规则:

<Directory "c:/htdocs">
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.4/mod/core.html#options
    # for more information.
    #
    Options Indexes Includes FollowSymLinks

    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   AllowOverride FileInfo AuthConfig Limit
    #
    AllowOverride All

    #
    # Controls who can get stuff from this server.
    #
    Require local
</Directory>

据我了解,“需要本地”将阻止任何非本地主机能够向本地计算机中的文件发出请求

所以我的问题是,为什么这个域名显然能够成功从我的本地开发机器访问文件?

答案1

我个人会让 Apache 只监听本地主机 IP 地址 (127.0.0.1),您的配置中可能有这样的一行:

Listen 80

或者

Listen *:80

将其更改为

Listen 127.0.0.1:80

阅读更多内容Apache 文档就此主题而言。

日志消息的另一种可能性可能是,您的 127.0.0.1 IP 地址解析为 www.......com,只需检查您的主机文件或尝试nslookup 127.0.0.1其他方法进行反向 DNS 搜索,我不是 Windows 用户所以我可能输入了错误的命令。

如果 127.0.0.1 解析为该名称,则您自己的请求将会被记录下来。

答案2

这些日志显示了您对 Web 服务器的请求。

我们从您的评论中看到您说您已将其添加127.0.0.1 www.-----.com到 Windows hosts 文件中。

不幸的是,您已将 Apache 配置为在记录 IP 地址之前对其进行反向 DNS 查找。您的 Apache 配置中的某处是:

HostnameLookups On

127.0.0.1因此, Apache不会记录,而是记录www.-----.com,因为当它在 127.0.0.1 上执行主机名查找时,该名称是由 hosts 文件提供的。

将其更改为Off,您的日志将再次显示正确的 IP 地址。

相关内容