我一直在追踪一个错误,我已经将其归结为以下情况。我们有一个运行 apache 的 Web 服务器,它不提供包含“/bin/sh”模式的文件名,这些文件名位于服务器所在的校园之外(例如。可能相关的是,一旦您跳过认证错误,开头www.example.com/some/sub/folders/bin/show.html
为 而不是 的相同 URL就可以正常工作。在我们的应用程序中很难更改所有此类文件名,所以我正在尝试修复此问题。我该如何进一步调试它?https
http
日志文件/etc/httpd/logs/access_log
显示GET
此文件名的请求 URL 不相关。其他文件名按原样显示。我检查了/etc/httpd/conf
和下的配置文件/etc/httpd/conf.d
,但没有看到任何相关内容,尽管我不熟悉这些配置文件。
Apache版本如下:
# httpd -v
Server version: Apache/2.0.52
Server built: Oct 29 2008 09:20:05
有任何想法吗?
编辑
来自校园内部的日志消息(响应 304 用于常规缓存浏览器窗口,响应 200 用于私人非缓存浏览器窗口):
(ip addr) - - [27/Apr/2017:13:06:45 +0300] "GET /appserv/bin/sh.html HTTP/1.1" 304 - "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:53.0) Gecko/20100101 Firefox/53.0"
(ip addr) - - [27/Apr/2017:13:06:54 +0300] "GET /appserv/bin/sh.html HTTP/1.1" 200 154 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:53.0) Gecko/20100101 Firefox/53.0"
来自校园外的日志消息(使用 tor 和各种 vps 节点进行测试):
(ip addr) - - [27/Apr/2017:13:08:08 +0300] "GET /cosbiom/component/option,com_extcalendar/Itemid,99999999/extmode,day/date,2031-02-04/ HTTP/1.1" 200 28936 "-" "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)"
答案1
如果这在校园内有效但在外面无效,那么这不太可能是网络服务器配置的问题(可能是,但我怀疑这种配置非常明显)。
我认为更有可能的是,校园网络边缘存在某种基于简单正则表达式匹配的基于检查的防火墙。这通常不会影响 https 流量(因为它是加密的,因此不会受到检查)。
您需要与负责校园网络连接的人员交谈(我假设您已经尝试了多个外部连接,因此您确定问题出在服务器端)。