如何欺骗爬虫/扫描仪检测网络技术?

时间:2014-02-15 19:22:59

标签: php security

我有一个PHP网站,我完成了所有的URL重写。这样就隐藏了PHP扩展。但不知何故,网络浏览器和安全扫描程序/漏洞扫描程序能够找到我的网站是用PHP开发的。

如何避免这种情况或如何欺骗他们本网站不是通过PHP开发的?

2 个答案:

答案 0 :(得分:2)

正如评论中所提到的,我开发的安全扫描程序可能类似于您试图隐藏某些信息的扫描程序。

这很难实现的原因之一是安全扫描程序通常不只是看一件事。我工作的那个使用一个非常庞大的指纹数据库来确定特定的文件或行为是否代表某个插件,框架,网站构建器,或者即使网站是以与另一个使用特定工具生成的结构相似的方式生成的HTML。

一旦我们发现了一项技术,我们就可以将基于这些指纹的信息与另一个网站联系起来,这个网站没有公开所有相同的信息,甚至可能故意将其改为误导性的信息。

一个很好的例子就是当人们将X-Powered-By标题更改为不能代表他们使用的标题时。

假如您运行了PHP驱动的网站,但您的X-Powered-By标题是“Microsoft ASP.NET”或其他任何内容。如果您的所有扩展程序都以.php结尾或被隐藏,我们可能会认为该信息是错误的或有疑问的。其他技术也存在某些行为细微差别,例如ASP.NET,它们存在结构指纹,如_VIEWSTATE字符串。

此外,您需要记住诸如URL格式,POST / PUT行为以及您运行的其他软件之类的内容。例如,如果你运行WordPress,很可能你正在使用PHP。

这只是一个小例子。每项技术都有数以千计的规则,这些规则越来越让我们对我们的猜测感到满意。我们有一个产品数据库,每个产品都有独特的或交叉的指纹,其中有大约10,000种已识别的产品。

收集并分析所有这些信息。如果我们确定网站没有正确表示自己,它会标记网站和相关页面列表以供人工审核,此时分析师将手动插入网站并手动确定其技术并找出新的指纹它

答案 1 :(得分:0)

一种合法的方式。


大多数网络漏洞扫描程序或抓取工具都会利用您的网站标题来查明这一点。假如你这样做..

<?php
var_dump(headers_list());

你会得到..

array(1) {
  [0]=>
  string(23) "X-Powered-By: PHP/5.4.3"
}

因此,使用该信息,爬虫可以轻松弥补您的网站是使用PHP开发的。

如何避免这种情况?

你可以在PHP中使用header_remove()

从代码中可以看出..

<?php
echo "<pre>";
var_dump(headers_list());
header_remove();
var_dump(headers_list());

<强> OUTPUT :

array(1) {
  [0]=>
  string(23) "X-Powered-By: PHP/5.4.3"
}

array(0) {
}

标题现在为空。