Security
Apache access.log:未經授權的使用者能夠在我的本地主機開發機器上請求文件
我的開發 PC 上安裝了 Apache2.4(Windows 10)
查看我的 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
我在 localhost 上有“phpmyadmin”,“SOME-PERSONAL-DEV-PROJECT”是我的 localhost 中用於個人 Web 開發內容的另一個文件夾。
‘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>
據我了解,“需要本地”將阻止任何不是本地主機的東西能夠向我的本地機器中的文件發出請求
所以我的問題是,為什麼這個域顯然可以成功地從我的本地開發機器訪問文件?
我個人會讓 Apache 只監聽 localhost 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 解析為該名稱,您自己的請求將與它一起記錄。