首先,我无法相信这不是默认行为。其次,哎呀!我不知道我的代码在那里挂了多久,里面有各种很酷的秘密内容,只是在等待一些比我更了解 Apache 的黑客。
答案1
您应该添加-Indexes
以禁止显示您的 CGI 目录索引:
Options +ExecCGI -Indexes
答案2
为了让这对未来的观众有用(因为@社区无论如何,我碰到了它),我将根据 OP(自 1 月 20 日之后就没有再来过这里)在问题中编辑的相关内容来回答。
事情是这样的:
我们在 /aux/file.py 上有一些可用于 Web 的 Python 脚本,而这些脚本位于 /var/www/http/aux 上,这并不奇怪。另外,我们在 /servlets/ 上运行应用服务器和 Apache 代理。承包商通过捆绑所有生成的文件(包括 Python 文件,这也不奇怪,它们位于一个也叫 aux 的目录中)构建了 WAR 文件,因此,如果您输入 /servlets/aux/file.py,Web 服务器会向应用服务器请求该文件,而应用服务器只会提供该文件。今天早上我偶然输入了后者的 URL,然后,源代码就出现了。
在我意识到我所做的事情完全不可能之前,这种情况在括约肌量表上的评分约为 8.3。经过大约半个小时的紧张思考后,我意识到这与 CGI 无关(并且提供可执行文件不仅愚蠢而且不可能),并且能够解决真正的问题。