首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何欺骗爬虫/扫描器,使其无法检测到网络技术?

如何欺骗爬虫/扫描器,使其无法检测到网络技术?
EN

Stack Overflow用户
提问于 2014-02-15 19:22:58
回答 2查看 193关注 0票数 1

我有一个PHP网站,我已经完成了所有的URL重写。使得PHP扩展被隐藏。但是不知何故,网络爬虫和安全扫描器/漏洞扫描器能够找到我的站点是用PHP开发的。

我如何避免这种情况,或者如何欺骗他们,使他们相信这个网站不是通过PHP开发的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-15 19:32:50

一种合法的方法。

好吧,大多数网络漏洞扫描器或爬虫利用你的网站标题来找出这一点。说如果你这么做..。

代码语言:javascript
复制
<?php
var_dump(headers_list());

你会得到..。

代码语言:javascript
复制
array(1) {
  [0]=>
  string(23) "X-Powered-By: PHP/5.4.3"
}

因此,有了这些信息,爬虫就可以轻松地弥补您的站点是用PHP开发的。

如何避免这种情况?

为此,您可以在PHP中使用header_remove()

从代码中可以看出..。

代码语言:javascript
复制
<?php
echo "<pre>";
var_dump(headers_list());
header_remove();
var_dump(headers_list());

OUTPUT :

代码语言:javascript
复制
array(1) {
  [0]=>
  string(23) "X-Powered-By: PHP/5.4.3"
}

array(0) {
}

标题现在为空。

票数 0
EN

Stack Overflow用户

发布于 2014-02-15 19:48:12

正如在评论中提到的,我开发了一个安全扫描器,它可能与您试图隐藏某些信息的扫描器类似。

这很难达到的原因之一是因为安全扫描器通常不会只看一件事情。我所研究的网站使用一个非常大的指纹数据库来确定特定的文件或行为是否代表某个插件、框架、站点构建器,或者即使网站是以与使用特定工具生成HTML的结构类似的方式生成的。

一旦我们发现了一种技术,我们就可以根据这些指纹将其与另一家网站联系起来,该网站不公开所有相同的信息,甚至可能故意将其更改为具有误导性的东西。

这方面的一个很好的例子是,当人们将他们的X-Powered-By头更改为不代表他们所使用的东西时。

假设您运行的是PHP驱动的网站,但是您的X-Powered-By头是"Microsoft ASP.NET“或其他任何东西。如果您的所有扩展都以.php结尾或者是隐藏的,我们可以假设这些信息是错误的,或者是可疑的。对于其他技术,比如ASP.NET,也存在某些行为上的细微差别,这就是_VIEWSTATE字符串等结构指纹的存在。

此外,您还需要记住URL格式、POST/PUT行为,甚至您运行的其他软件。例如,如果运行WordPress,很可能使用的是PHP。

这只是一个很小的例子。每项技术都有数千条规则,这些规则使人们越来越相信我们的猜测是正确的。我们有一个产品数据库,每个产品都有独特的或交叉的指纹,其中大约有10,000种识别产品。

所有这些信息都是收集和分析的。如果我们确定一个网站没有正确地表示自己,它就会标记该网站和一个需要人工审查的页面列表,届时分析师将手动插入该网站,并手工确定其技术,并为其找到新的指纹。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21802417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档