Web 使用robots.txt的安全问题

Web 使用robots.txt的安全问题,web,robots.txt,Web,Robots.txt,我正试图阻止web搜索爬虫为我的web服务器上的某些私有页面编制索引。说明包括在robots.txt文件中,并将其放入我的域的根目录中 但我对这种方法有一个问题,主要是,任何人都可以访问www.mywebsite.com/robots.txt,查看结果如下: # robots.txt for Sites # Do Not delete this file. User-agent: * Disallow: /php/dontvisit.php Disallow: /hiddenfolder/

我正试图阻止web搜索爬虫为我的web服务器上的某些私有页面编制索引。说明包括在
robots.txt
文件中,并将其放入我的域的根目录中

但我对这种方法有一个问题,主要是,任何人都可以访问
www.mywebsite.com/robots.txt
,查看结果如下:

# robots.txt for Sites
# Do Not delete this file.

User-agent: *
Disallow: /php/dontvisit.php
Disallow: /hiddenfolder/
这会告诉任何人我不想让任何人去的页面

你知道如何避免这种情况吗

这里有一个我不想公开的页面示例:我的软件许可证付款的PayPal验证页面。页面逻辑不会让一个无用的请求通过,但它会浪费带宽(用于PayPal连接,以及在我的服务器上进行验证),并且会将连接尝试条目记录到数据库中


PS2。我不知道这个页面的URL是如何“公开”的。除了我的服务器上的PayPal和via.php脚本之外,它没有在任何地方列出。页面本身的名称类似于:
/php/ipnius726.php
,因此它不是爬虫可以猜测的简单内容。

您可以将想要保持未绘制和模糊的内容放入子文件夹。因此,例如,将页面放入
/hiddenfolder/aivnafgr/hfaweufi.php
(其中
aivnafgr
hiddenfolder
的唯一子文件夹,但如果将“隐藏”放在robots.txt中,只需将
hiddenfolder
放在robots.txt中即可。

子目录下的页面,类似于
private
,然后您可以只
禁止:/private
,而不公开该目录中任何内容的名称


我看到的另一个技巧是为不诚实的机器人创建一种蜜罐,明确列出一个实际上不属于你网站的文件,看看是谁请求它。比如
Disallow:/honeypot.php
,你知道对
honeypot.php
的任何请求都来自一个正在抓取你
ro的客户端bots.txt
,因此您可以将该用户代理字符串或IP地址列入黑名单。

URL是公共的。讨论结束。您必须假设如果您将URL保持足够长的时间不变,它将被访问

您可以做的是:

  • 安全访问这些URL背后的功能
  • 善意地要求人们不要去拜访他们
  • 有许多方法可以实现第一,但最简单的方法是向授权用户提供某种会话令牌

    正如您所提到的,第二个是通过使用robots.txt实现的。大型爬虫程序将尊重该文件的内容,并保留其中列出的页面


    这就是你所能做的。

    你说你不想重写你的URL(例如,所有不允许的URL都以相同的路径段开始)

    相反,您还可以指定不完整的URL路径,这不需要任何重写

    因此,要禁止
    /php/ipnius726.php
    ,可以使用以下robots.txt:

    User-agent: *
    Disallow: /php/ipn
    
    这将阻止路径以
    /php/ipn
    开头的所有URL,例如:

    • 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

    这是对戴维·安德伍德(David Underwood)和乌诺(unor)的回答的补充(没有足够的代表点,我只能回答这个问题)。最近的挖掘显示,谷歌有一个条款,允许他们在其他安全问题上忽略以前备受尊重的机器人文件。该链接是扎克·盖里(Zac Gery)的一个博客,解释新的(er)政策和一些关于如何“强制”谷歌搜索引擎变得友好的简单解释。我意识到这并不是你想要的,但在QA和安全方面,我发现它非常有用


    是的,这是一种方法。不幸的是,这将涉及到重写站点的基础设施,这是一个相当昂贵的提议。是的,我知道URL是公共的。我的想法是将
    X-Robots-Tag:noindex,nofollow
    添加到每个私有页面的响应头中,但不幸的是一些爬虫不阅读它。很好我知道,谢谢。