0

我使用的是 Tomcat 5.5 服务器,并且部署了一个 Web 应用程序。我想阻止访问项目中 .txt 文件的 http 请求。例如 http url,比如 -- https://MyDomain/inside/mytest.txt

我认为这可以使用 web.xml 文件中的安全约束或编写自定义阀门来完成。但是,我正在探索使用 robots.txt 文件的可能性,因为它们看起来非常简单。所以我编写了一个 robots.txt 文件来阻止对 *.txt 文件的访问,如下所示——

# go away User-agent: * Disallow: /*.txt

我已将它放在 ROOT 文件夹以及 webapps 文件夹内的所有路径中。但是,它似乎没有任何效果,我仍然能够访问 *.txt 文件。robots.txt 文件在 Tomcat 中生效还需要其他注意事项和步骤吗?非常感谢这里的任何帮助。

4

1 回答 1

2

robots.txt是网络机器人(例如搜索引擎网络爬虫)遵循的约定,它之所以有效,是因为网络机器人查看此文件并遵守它在其中找到的规则。有关详细信息,请参阅http://www.robotstxt.org/,尤其是http://www.robotstxt.org/robotstxt.html

请注意,它不是一种安全措施——它只是一个咨询协议,任何行为不端的 Web 机器人都可以随意忽略它(因为服务器不强制执行其规则)。事实上,robots.txt 甚至不是针对人类用户,他们通常应该能够访问这些页面。

如果您真的想阻止您的 Web 应用程序的所有用户(不仅仅是行为良好的自动网络爬虫)访问文件,那么您将需要执行您提到的安全约束之类的操作。

另外几个选择:

  • 将文本文件放在WEB-INF/classes/Web 应用程序的文件夹中,因为此文件夹的内容永远不会提供给 Web 客户端,但可供 Web 应用程序代码本身使用ClassLoader.getResourceAsStream,例如。

  • 将文本文件放在WEB-INF/Web 应用程序的文件夹中,因为此文件夹的内容永远不会提供给 Web 客户端,但可供 Web 应用程序代码本身使用ServletContext.getResourceAsStream,例如。

于 2012-12-13T16:01:17.423 回答