我正在尝试阻止网络搜索抓取工具索引我的网络服务器上的某些私人网页。说明将这些内容包含在robots.txt
文件中,并将其放入我的域的根目录中。
但我对此类方法存在问题,主要是,任何人都可以转到www.mywebsite.com/robots.txt
并查看结果:
# robots.txt for Sites
# Do Not delete this file.
User-agent: *
Disallow: /php/dontvisit.php
Disallow: /hiddenfolder/
将告诉任何人我不希望任何人去的页面。
知道如何避免这种情况吗?
PS。以下是我不希望向公众公开的页面示例:我的软件许可证付款的PayPal验证页面。页面逻辑不会让dud请求通过,但它会浪费带宽(对于PayPal连接,以及我服务器上的验证),并且它会将连接尝试条目记录到数据库中。
PS2。我不知道这个页面的URL是如何“向公众”发布的。除了我的服务器上的PayPal和via .php脚本之外,它没有列在任何地方。页面本身的名称类似于:/php/ipnius726.php
所以抓取者只能猜测它并不简单。
答案 0 :(得分:3)
网址是公开的。讨论结束。你必须假设,如果你保持URL的长度不变,就可以访问它。
你能做的是:
有很多方法可以实现数字1,但最简单的方法是为授权用户提供某种会话令牌。
正如您所提到的,使用robots.txt
实现了数字2。大爬虫将尊重该文件的内容,并将列出的页面保留在那里。
你真的可以做的就是。
答案 1 :(得分:1)
您可以将想要保留的内容保存为子文件夹。因此,举例来说,将页面放在/hiddenfolder/aivnafgr/hfaweufi.php
中(其中aivnafgr
是hiddenfolder
的唯一子文件夹,但只需将hiddenfolder
放入robots.txt。
答案 2 :(得分:1)
如果你把你的"隐藏"在子目录下的页面,例如private
,然后您可以Disallow: /private
而不暴露该目录中任何内容的名称。
我已经看到的另一个技巧是通过明确列出一个实际上不属于您网站的文件来为不诚实的机器人创建一种蜜罐,只是为了查看谁请求它。类似Disallow: /honeypot.php
的内容,您知道honeypot.php
的任何请求都来自抓取您robots.txt
的客户端,因此您可以将该用户代理字符串或IP地址列入黑名单。
答案 3 :(得分:1)
您说您不想重写您的网址(例如,所有不允许的网址都以相同的路径段开头)。
相反,您也可以指定不完整的URL路径,这不需要任何重写。
所以要禁止/php/ipnius726.php
,您可以使用以下robots.txt:
User-agent: *
Disallow: /php/ipn
这将阻止路径以/php/ipn
开头的所有网址,例如:
http://example.com/php/ipn
http://example.com/php/ipn.html
http://example.com/php/ipn/
http://example.com/php/ipn/foo
http://example.com/php/ipnfoobar
http://example.com/php/ipnius726.php
答案 4 :(得分:1)
这是为了补充大卫安德伍德和亚瑟的答案(没有足够的重复点我只是回答这个问题)。最近的挖掘表明,谷歌有一个条款允许他们在其他安全问题的基础上忽略以前受尊重的机器人文件。该链接是来自Zac Gery的博客,解释了新的(呃)政策和一些简单的解释,如何强迫"谷歌搜索引擎很不错。我意识到这并不是你想要的,但在质量保证和安全方面,我发现它非常有用。
http://zacgery.blogspot.com/2013/01/why-robotstxt-file-is-no-longer.html