【问题标题】:is there a reason to not put my admin directory in robots.txt?是否有理由不将我的管理目录放在 robots.txt 中?
【发布时间】:2019-01-25 04:20:50
【问题描述】:

这可能已经被问及回答了,因为我不确定什么是最好的表达方式。

我想确保搜索蜘蛛不会索引我网站的管理端。不幸的是,如果我将路径放入我的 robots.txt 文件中,我将交出 cookie 罐。不过谢天谢地,它被锁定了。

我已经有不少“访问者”从抓取 robots.txt 开始。显然,非法蜘蛛会忽略 robots.txt,但我想阻止 Google 和 Bing 在搜索结果中粘贴我的管理目录。

  • 我的管理目录不叫“admin”(最常见的 SBO 策略)
  • 目录浏览已被阻止
  • 任何连接到我的管理目录但没有首先使用适当权限登录的 IP 都会被列入黑名单。我一直在监控,只有几个合法的蜘蛛以这种方式被列入黑名单
  • 我正在使用 .htaccess(合并多个公共黑名单)和基于行为的 PHP 黑名单(有些是自动的,但仍然是 Mark-I 眼球)
  • 管理端的所有操作都是基于身份验证的
  • 只有拥有相应权限的授权用户才能看到指向管理端的链接。

我不确定是否应该将 admin 目录放在 robots.txt 中 - 一方面,合法蜘蛛会忽略该目录,但另一方面,我会告诉那些想要伤害该目录的人,而且我不想窥探...

【问题讨论】:

    标签: php apache security


    【解决方案1】:

    我想确保搜索蜘蛛不会索引我网站的管理端。不幸的是,如果我将路径放入我的 robots.txt 文件中,我将交出 cookie 罐。不过谢天谢地,它被锁定了。

    您正确地认识到了这个难题。如果您将管理员网址放在 robots.txt 中,那么行为良好的机器人将远离。另一方面,你基本上是在向坏人发出信号。

    如果您检查您的网络服务器的访问日志,您很可能会看到大量对管理类型页面的请求。例如,查看我的一台服务器上的 apache 日志,我看到机会主义脚本小子正在搜索 wordpress、phpmyadmin 等:

    109.98.109.101 - - [24/Jan/2019:08:48:36 -0600] "GET /wpc.php HTTP/1.1" 404 229 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0)" 109.98.109.101 - - [24/Jan/2019:08:48:36 -0600] "GET /wpo.php HTTP/1.1" 404 229 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0)" 109.98.109.101 - - [24/Jan/2019:08:48:37 -0600] "GET /wp-config.php HTTP/1.1" 404 229 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0)" 109.98.109.101 - - [24/Jan/2019:08:48:43 -0600] "POST /wp-admins.php HTTP/1.1" 404 229 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" 109.98.109.101 - - [24/Jan/2019:08:50:01 -0600] "GET /wp-content/plugins/portable-phpmyadmin/wp-pma-mod/index.php HTTP/1.1" 404 229 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36 109.98.109.101 - - [24/Jan/2019:08:48:39 -0600] "GET /phpmyadmin/scripts/setup.php HTTP/1.1" 404 229 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0)" 109.98.109.101 - - [24/Jan/2019:08:48:39 -0600] "GET /phpmyadmin/scripts/db___.init.php HTTP/1.1" 404 229 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0)" 109.98.109.101 - - [24/Jan/2019:08:49:35 -0600] "GET /phpmyadmin/index.php HTTP/1.1" 404 229 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36" 109.98.109.101 - - [24/Jan/2019:08:49:47 -0600] "GET /admin/phpmyadmin/index.php HTTP/1.1" 404 229 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36" 109.98.109.101 - - [24/Jan/2019:08:49:47 -0600] "GET /admin/phpmyadmin2/index.php HTTP/1.1" 404 229 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36"

    我的访问日志有成千上万的这些。机器人一直在搜索它们,而我的 robots.txt 文件中没有列出了这些文件。正如你可能猜到的,除非你有一个真正随机命名的管理 url,否则坏人很可能会猜到它的名字是 /admin。

    我已经有不少“访问者”从抓取 robots.txt 开始。显然,非法蜘蛛会忽略 robots.txt,但我想阻止 Google 和 Bing 在搜索结果中粘贴我的管理目录。

    我强烈建议您花一些时间来禁止不良机器人或基本上任何您无用的机器人。我想到了 AHrefsBot 和 SemRushBot。找到bad bot lists 应该不难,但您需要评估您找到的任何列表,以确保它不会阻止您想要服务的机器人。除了向您的 robots.txt 文件添加排除规则外,您还应该配置您的应用程序以通过发送 403 禁止或 404 消失或other HTTP response code of your choice 来禁止恶意机器人。

    最后,记住“security by obscurity 不是安全”这一格言至关重要。加密和安全最重要的原则之一是Kerckhoff's Principle——即“敌人知道系统”。您的网站不应仅仅依赖于您的管理员网址的位置是否模糊或秘密。您必须要求身份验证并在身份验证代码中使用合理的最佳做法。我不会依赖 apache 身份验证,而是将我的 Web 应用程序编码为以安全托管的形式(使用 HTTPS)接受用户登录名/密码,并且我只会存储这些密码的散列形式。 永远不要存储明文密码。

    最终,您系统的安全性与最薄弱的环节一样好。拥有一个独特的或不寻常的管理员有一些价值,因为您可能会受到更少的攻击,但这本身并不能提供任何真正的安全性。如果您仍然对在 robots.txt 文件中广播此 url 有所保留,不妨权衡一下如果 GoogleBot 或 BingBot 或其他一些友好的机器人开始在您的管理 url 中跺脚,您可能会遇到的问题。如果这些网址最终出现在 google 搜索索引中,您会不会感到困扰?

    【讨论】:

    • 如问题所示,Security by Obscurity 只是用于保护 admin 目录、其中包含的任何功能或信息的六种方法之一。
    • @Chameleon 您采取的步骤看似谨慎,但不看代码等就无法判断是否存在漏洞。
    • 我希望看到更多的想法。我相信,在保护资产的同时,应该使用尽可能多的工具。虽然 SBO 确实与将门关闭的透明胶带一样有效,但隐藏一扇您不希望人们打开的门是在破坏那扇门的过程中的另一个减速带。不把它放在 robots.txt 中会使我处于 Google 和 Bing 更有可能公开管理目录的位置,这比我把它放在 robots.txt 中要宣传得多
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-03
    • 2011-04-11
    • 1970-01-01
    • 1970-01-01
    • 2010-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多