我应该如何将开发和/或测试网站与公共和搜索引擎机器人隔离开来?

Posted

技术标签:

【中文标题】我应该如何将开发和/或测试网站与公共和搜索引擎机器人隔离开来?【英文标题】:How should I wall off the dev and/or beta sites -- from the public and search engine bots? 【发布时间】:2010-10-05 15:52:54 【问题描述】:

我需要将开发和测试网站与生产环境托管在同一台服务器上(出于实际原因,让我们让它飞起来吧)。

为了简单起见,我可以在开发版和测试版上接受相同的保护措施——基本上不要让它被爬取,并设置一些缺少用户名和密码的东西,以防止每个人和他们的兄弟获得访问权(同样,需要实用)。我意识到很多人希望在开发版上获得与测试版不同的权限,但这不是这里要求的一部分。

使用 robots.txt 文件是给定的,但接下来的问题是:是否应将额外的主机(也称为“子域”)提交给 Google 网站管理员工具,作为防止无意爬取的额外预防措施?不言而喻,但不会直接链接到开发/测试版网站,因此您必须完美地输入地址(无需通过 URL 重写或其他帮助进行扩充)。

访问权限如何仅限于我们的团队? IP 地址无法使用,因为互联网访问方式多种多样(在午餐地点开会,有 wifi 等)。

也许有 dev/beta 和生产 INCLUDE 一个小文件(或调用组件),用于查找要设置的 URL 变量(在 dev/beta 站点上)或 查找URL 变量(在生产站点上)。这样,您可以在各个站点上留下不同的 INCLUDE 或组件(名称相同),否则当它从开发转移到生产时,源将不需要更改。

我真的想避免在任何级别(应用程序级别或 Web 服务器)进行全面的用户身份验证,我意识到这让事情变得相当开放,但目标实际上只是为了防止无意中浏览预生产网站。

【问题讨论】:

【参考方案1】:

通常我会看到基于 Web 服务器的身份验证,所有用户使用一个共享的用户名和密码,这应该很容易设置。一个有趣的技巧可能是改为检查 cookie,然后只需有一个更好的隐藏页面来设置该 cookie。您可以在每个人都访问过该页面时删除该页面,或仅对该文件实施身份验证,或仅允许从办公室访问该页面,并要求在家工作的人使用 *** 或在清除 cookie 时访问办公室。

【讨论】:

+1,我喜欢 cookie 的想法来消除登录(对类似 exec 的团队成员有好处),但仍然使用基于 Web 服务器的身份验证。好主意。谢谢。【参考方案2】:

我完全不知道这是否是“正确”的做法,但对我们来说,我们将所有开发和测试网站都放在爬虫/蜘蛛/索引器永远不会访问的非常高的端口号上(事实上,我不知道有任何超出端口 80 的东西,除非它们遵循直接链接)。

然后,我们有一个参考索引页面,列出了所有站点及其各自端口号的链接,只有该页面受密码保护。对于涉及真实货币交易或其他敏感数据的网站,我们会在网站顶部显示一个红色短条,说明它只是一个演示服务器,很少有人会直接访问开发 URL 和端口号。

索引页也在非标准 (!= 80) 端口上。但即使爬虫到达它,它也不会通过密码输入,也永远找不到到所有其他端口的直接链接。

这样,您的开发人员可以通过直接 URL 和端口访问页面,并且他们有一个受密码保护的索引,以便在他们忘记时进行备份。

【讨论】:

+1,确实这听起来不“正确”,但它确实是一个简单的方法。不过,我认为端口扫描仪有很多活动。 bot 可能不会命中它,但它可能会受到一些黑客攻击(我们的 IIS 日志显示很多尝试管理 phpmyAdmin 等——即使我们没有 PHP 或 mysql 版本)。 我同意。据我所知,我们使用的端口并未被任何其他主流产品(如 phpMyAdmin)使用,因此除非有人主动进行端口扫描,否则他们不会知道去那里查看。

以上是关于我应该如何将开发和/或测试网站与公共和搜索引擎机器人隔离开来?的主要内容,如果未能解决你的问题,请参考以下文章

我应该测试私有方法还是仅测试公共方法? [关闭]

如何检测或阻止代理浏览

如何为网站设置负载/压力测试? [关闭]

我应该如何在 Amazon S3 上配置“阻止公共访问”?

如何将网络聊天发送到国家/地区?

Web 开发与搜索引擎优化,你应该选择哪一个?