我只是想知道,有没有办法让我弄明白网站是否正在使用perl。就像我可以告诉它使用wordpress或php。
答案 0 :(得分:10)
你不能问一个网站它实现了什么语言。没有规则说“.php”URL必须运行PHP(虽然它可能是),这一切都在服务器端决定。无法保证一个名为“Powered by Wordpress”的网站确实被Wordpress使用。一般而言,由于攻击者可以使用该信息来选择已知攻击,因此泄露有关您的实施细节的信息的安全性较差。
然而,有很多方法可以猜测。
最简单的方法之一是查看URL。它以“.pl”结尾吗?它可能是Perl(或者您正在查看波兰语域名)。
如果查看响应标头,有时Web服务器会使用Perl清楚地标识自己。例如,您可以使用curl -I
仅从服务器请求HTTP headers,并查看“服务器”和“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。尽管如此,“服务器”和“X-Powered-By”字段纯粹是信息性的,用于统计信息收集。基本上它是吹牛。服务器不需要说实话。实际上,it's a minor security issue that they advertise it。
如果网页标识了它正在使用的技术,例如http://blogs.perl.org表示它是Powered by Movable Type,您可以查看它是否为written in Perl。
有时您可以从HTML和其他内容的小细节中获取提示。有时他们会在评论中明确说明用于输出HTML的内容。有时您可以根据某些表单字段进行猜测。有时您可以从cookie名称和值中分辨出来。有时你可以告诉它如何创建JSON,XML,YAML或RSS输出。有时,生成软件会在图像和PDF标题中标识自己。
有nmap这样的工具可以根据它实现网络协议的非常小的细节来猜测操作系统,但是我不知道检测网络实现语言的这种事情。站点。
而且,正如Collin建议的那样,您可以尝试让服务器发出错误消息。
但你真的不知道。这是作为通用通信协议的网络的美丽,它写在什么并不重要。
答案 1 :(得分:5)
不是一般意义上的。如果创建网站的人没有泄露有关其实施的信息,您将无法找到。
如果您可能以某种方式导致错误,有时生成的错误消息将为您提供实现的线索。