2

我只是想知道,有没有一种方法可以确定网站是否使用 perl。就像我可以用 built with 来判断它使用 wordpress 或 php 一样。

4

2 回答 2

10

你不能问一个网站它是用什么语言实现的。没有规则说“.php” URL 必须运行 PHP(尽管它可能是),这一切都由服务器端决定。不能保证说“由 Wordpress 提供支持”的网站确实被 Wordpress 使用。一般来说,泄露有关您的实施细节的信息的安全性很差,因为攻击者可以使用它来选择已知的攻击。

但是,有很多方法可以猜测。

最简单的判断方法之一是查看 URL。它是否以“.pl”结尾?它可能是 Perl(或者您正在查看一个波兰域)。

如果您查看响应标头,有时 Web 服务器会清楚地将自己标识为使用 Perl。例如,您可以使用仅从服务器curl -I请求HTTP 标头并查看“Server”和“X-Powered-By”标头。

$ curl -I http://perldancer.org
HTTP/1.1 200 OK
Date: Wed, 27 Mar 2013 05:04:14 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Server: Perl Dancer 1.311
Content-Length: 19849
X-Powered-By: Perl Dancer 1.311

可能使用 Perl。同样,“Server”和“X-Powered-By”字段纯粹是信息性的,用于收集统计信息。基本上是在吹嘘。服务器不需要说实话。事实上,他们宣传它是一个次要的安全问题

如果网页识别出它使用的是什么技术,例如http://blogs.perl.org说它是由 Movable Type 提供支持,你可以查看它是否是用 Perl 编写的

有时您可以从 HTML 和其他内容中的小细节中获得提示。有时他们会在注释中明确说明用于输出 HTML 的内容。有时您可以根据某些表单字段进行猜测。有时您可以从 cookie 名称和值中看出。有时您可以从它如何创建 JSON、XML、YAML 或 RSS 输出中看出。有时,生成软件会在图像和 PDF 标题中标识自己。

有诸如nmap之类的工具会根据操作系统如何实现其网络协议的非常小的细节来猜测操作系统,但我不知道有这样的东西可以检测网站的实现语言。

而且,正如科林建议的那样,您可以尝试让服务器吐出一条错误消息。

但你永远无法真正知道。这就是网络作为通用通信协议的美妙之处,不管它是用什么写的。

于 2013-03-27T05:18:26.887 回答
5

不是一般意义上的。如果创建网站的人没有泄露有关其实施的信息,您将无法找到。

如果你能以某种方式导致错误,有时生成的错误消息会给你提供实现的线索。

于 2013-03-27T03:53:10.723 回答