如何阻止搜索引擎抓取整个网站?

时间:2012-02-01 20:34:07

标签: security .htaccess robots.txt

我想阻止搜索引擎抓取我的整个网站。

我有一个公司成员使用的网络应用程序。它托管在Web服务器上,以便公司的员工可以访问它。没有其他人(公众)需要它或发现它有用。

所以我想添加另一层安全性(In Theory),试图通过完全取消所有搜索引擎机器人/抓取工具对它的访问来防止未经授权的访问。让谷歌索引我们的网站以使其可搜索从商业角度来看是没有意义的,只是为黑客添加了另一种方法,让黑客首先找到网站试图破解它。

我知道robots.txt你可以告诉搜索引擎不要抓取某些目录。

是否有可能告诉机器人不要抓取整个网站而不必列出所有不要抓取的目录?

这最好用robots.txt完成,还是由.htaccess或其他更好地完成?

3 个答案:

答案 0 :(得分:12)

最好使用robots.txt文件进行处理,仅限于尊重文件的机器人。

要阻止整个网站,请将其添加到您网站根目录中的robots.txt

User-agent: *
Disallow: /

要限制其他人访问您的网站,.htaccess更好,但您需要按IP地址定义访问规则。

以下.htaccess规则限制除您公司IP以外的所有人:

Order allow,deny
# Enter your companies IP address here
Allow from 255.1.1.1
Deny from all 

答案 1 :(得分:8)

使用robots.txt将网站排除在搜索引擎索引之外one minor and little-known problem:如果有人从Google编入索引的任何网页链接到您的网站(Google必须要找到您的网站)无论如何,robots.txt或不是{},Google may still index the link并将其显示为搜索结果的一部分,即使您不允许他们获取链接所指向的页面。

如果这对您来说可能是一个问题,那么解决方案是使用robots.txt,而是包含robots元标记,其值为noindex,nofollow在您网站的每个页面上。您甚至可以使用mod_headers.htaccess HTTP标头在X-Robots-Tag文件中执行此操作:

Header set X-Robots-Tag noindex,nofollow

此指令会将标头X-Robots-Tag: noindex,nofollow添加到它应用的每个页面,包括非HTML页面,如图像。当然,您可能也希望包含相应的HTML元标记,以防万一(它是一个较旧的标准,因此可能更广泛地支持):

<meta name="robots" content="noindex,nofollow" />

请注意,如果您这样做,Googlebot仍会尝试抓取它找到的任何链接到您的网站,因为它需要在看到标头/元标记之前获取该网页。当然,有些人可能会认为这是一个功能而不是错误,因为它可以让您查看访问日志,看看Google是否找到了指向您网站的链接。

无论如何,无论你做什么,请记住很难将“秘密”网站保密很长时间。随着时间的推移,您的一个用户意外泄漏到站点的链接的可能性接近100%,如果有任何理由认为某人有兴趣找到该站点,您应该假设他们会这样做。因此,请确保在您的网站上放置适当的访问控制,使软件保持最新并对其进行定期安全检查。

答案 2 :(得分:0)

如果您担心安全问题,并且锁定到IP地址并不可行,那么您应该考虑要求您的用户以某种方式进行身份验证以访问您的网站。

这意味着任何未经过身份验证的人(谷歌,机器人,绊倒的人)都无法访问您的网页。

您可以将其烘焙到您的网站本身,或使用HTTP基本身份验证。

https://www.httpwatch.com/httpgallery/authentication/