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

Security 我应该如何将开发和/或测试版网站与公众和搜索引擎机器人隔离开来?,security,development-environment,Security,Development Environment,我需要将开发和测试站点托管在与生产环境相同的服务器上(出于实际原因,让我们这样做吧) 为了简单起见,我可以在dev和beta上接受相同的保护——基本上不让它被刺穿,并在适当的位置设置用户名和密码,以防止每个人和他们的兄弟获得访问权限(同样,需要切实可行)。我意识到许多人希望在dev上拥有与beta不同的权限,但这不是这里的要求 使用robots.txt文件是已知的,但问题是:是否应将额外的主机(也称为“子域”)提交给Google网站管理员工具,作为防止意外爬网的额外预防措施?不用说,但是没有直接

我需要将开发和测试站点托管在与生产环境相同的服务器上(出于实际原因,让我们这样做吧)

为了简单起见,我可以在dev和beta上接受相同的保护——基本上不让它被刺穿,并在适当的位置设置用户名和密码,以防止每个人和他们的兄弟获得访问权限(同样,需要切实可行)。我意识到许多人希望在dev上拥有与beta不同的权限,但这不是这里的要求

使用robots.txt文件是已知的,但问题是:是否应将额外的主机(也称为“子域”)提交给Google网站管理员工具,作为防止意外爬网的额外预防措施?不用说,但是没有直接链接到dev/beta站点的链接,因此您必须完美地键入地址(没有URL重写或其他帮助的补充)

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

可能让dev/beta和production
包含一个小文件(或调用组件),该文件查找要设置的URL变量(在dev/beta站点上)或不查找URL变量(在production站点上)。通过这种方式,您可以在各自的站点上保留不同的INCLUDE或component(名称相同),否则当源代码从开发转移到生产时,就不需要进行更改


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

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

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

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

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


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

+1,我喜欢cookie消除登录的想法(对于类似exec的团队成员来说很好),但仍然使用基于web服务器的身份验证。好主意。谢谢。+1,这听起来确实不“合适”,但它确实是一个简单的方法。不过,我认为端口扫描仪有很多活动。机器人可能不会攻击它,但它可能会遭到一些黑客攻击(我们的IIS日志显示,有很多人试图管理PHPmyAdmin等,尽管我们没有PHP或MySQL风格)。我同意。据我所知,我们使用的端口没有被任何其他主流产品(如phpMyAdmin)使用,因此除非有人主动进行端口扫描,否则他们不知道如何查看。