我们有一个安全的网站(在Windows服务器和IIS 5上运行的.NET 2.0/C#中开发),成员必须先登录,然后才能查看存储在虚拟目录中的一些PDF文件。为了防止蜘蛛抓取本网站,我们有一个robots.txt,它将禁止所有用户代理进入。但是,这不会阻止Rogue蜘蛛将PDF文件编入索引,因为它们会忽略robots.txt命令。由于文件是安全的,我不希望任何蜘蛛进入这个虚拟目录(甚至不是好的)。防止索引目录中的流氓蜘蛛
在网上阅读一些文章,并想知道程序员(而不是网站管理员)是如何在他们的应用程序中解决这个问题的,因为这似乎是一个非常普遍的问题。网络上有许多选项,但我正在寻找简单而优雅的东西。
我看到的一些选项,但似乎很弱。这里列出了他们的缺点:
创建一个蜜罐的/ Tarpit,将允许流氓蜘蛛得到,然后会列出自己的IP地址。缺点:这也会阻止来自相同IP的有效用户,需要手动维护此列表或者让成员从列表中删除自己。由于该网站在互联网上,我们没有有效成员将使用的一系列IP。
请求标头分析:然而,流氓蜘蛛使用真正的代理名称,所以这是毫无意义的。
元机器人标签:缺点:只有谷歌和其他有效的蜘蛛服从。
有一些关于使用.htaccess的说法,它假设是好的,但那只会是apache,而不是IIS。
任何建议非常感谢。
编辑:正如9000指出的,流氓蜘蛛不应该能够进入需要登录的页面。我想这个问题是'如何阻止知道链接表单的人在不登录网站的情况下请求PDF文件'。
嗨9000,你是对的。蜘蛛无法抓取到需要登录的页面。我猜这个问题是,如果有人已经知道这个链接,并且试图在没有登录的情况下得到它。 – Pritika 2011-02-02 17:55:01
实际上,这些页面可能对蜘蛛是安全的,但是如果该文件仍然可以在没有登录的情况下访问,它仍然是公开的。如果知道url的用户可以在没有登录的情况下查看文件,那么你应该假设蜘蛛也是如此(尽管稍微有些困难),所以网上的任何人都会这样做。您将希望完全防止未经授权的访问文件,可能在apache中。 – Kzqai 2011-06-07 17:25:46