您如何确定网站所基于的技术?[关闭]


157

我经常遇到一个外观漂亮或功能强大的网站,并且想知道使用什么技术来创建它。有哪些技术可以用来确定特定网站的构建?

几乎没有框架像Web编辑器那样包含任何类型的生成器元标记。是否存在特定语言和/或框架的任何迹象?


答案摘要

站点URL可能背叛了框架和/或编程语言,但不能被依赖(例如,文件扩展名,例如.asp)。HTTP响应标头,Cookie,样式表和源注释也可能提供线索。

查询站点详细信息的一些不错的工具(毫无疑问,还有更多):

Firefox插件:

Chrome扩展程序:

书签:


1
我喜欢使用Firefox插件Wappalyzer来一目了然地查看网站的技术。
Naoise Golden 2011年

guess.scritch.org还是一个查询站点详细信息的不错的工具。
Ehtesh Choudhury

我很想知道这是否是隐藏基础服务器语言的一种方法
shababhsiddique

1
@shababhsiddique默认情况下,底层服务器语言为“隐藏”。没有任何标准技术可以隐藏您的网站所基于的内容-只是不要让您的后端将任何有历史意义的标记输出到前端
Zach Lysobey 2014年

@ZachL还是我发现过去无法建立的一些网站。以apple.com为例。builtwith.com/?https%3a%2f%2fwww.apple.com%2f,您如何查找?如果您找不到苹果是怎么藏起来的?
shababhsiddique 2014年

Answers:


20

您可以寻找各种各样的东西,但实际上并不能给您确定站点背后的技术的确定性。通常,这样的信息是人们想要隐藏的东西,因为暴露的信息越多,恶意方就越容易识别安全漏洞或拒绝服务漏洞。

如果我有兴趣,我可能会以不特定的顺序查看:

  • 网址和文件扩展名。
  • HTTP响应头
  • 注释的源代码或标准JS库

顺便说一句,其他答案中提到的工具只是自动为您提供,并且会稍微快一些,它们只是为您查看了网站的上述某些属性。:)


1
有很多好的答案,所以我在选择可接受的答案时有些延迟,但这最合适。它涵盖了可能在研究自动化工具之前使用的基本起点。

67

您可以使用http://builtwith.com来确定使用了哪种服务器和编程语言。例如,它告诉我SO使用IIS7,谷歌分析,html4和utf8。

如果您想了解框架...那么仅通过查看站点就不可能实现。您为什么不给他们写电子邮件?;)


2
给他们写一封电子邮件,这是对您的横向思考。好点子!而且我喜欢builtwith.com,只需要一些方法即可将此答案添加为书签。干杯。
马太福音

无法在IIS7上建立SO的内置信息,您是如何获得该信息的?
shababhsiddique 2013年

@shababhsiddique:早在2008年就可以了。
Kim Stebel,

如何隐藏我的网站信息?我还没有看到任何资源?
shababhsiddique

@shababhsiddique:这是一个单独的问题,您应该适当地询问它是否尚不存在
Kim Stebel

8

我使用1个用于Firefox的插件,该插件为我提供了托管网站的IP和国家/地区,以及名为Domain Details的Web服务器名称,对于javascript框架,我使用WTFramework

我仍然想知道它写在什么脚本上,但这只是一个开始:)

希望能帮助到你。

PS的输出将是这样的:

替代文字http://img88.imageshack.us/img88/2505/200812282328ha0.png


很高兴您喜欢它:)您也可以单击此问题的声誉编号后的“正确图标”,这样就可以将其标记为可接受的答案;)
balexandre

您是否知道Chrome的域名详情扩展程序?
安德鲁·哈伯斯

@Andrew至少试图找出答案?这是我在Google上搜索的第一个结果!
balexandre

6

URL可以提供很多线索,尤其是在内容管理系统中。

例如,“ http://abcxyz.com/ node / 46 ”看起来很像Drupal。

同样,许多框架都有使用的标准JavaScript和CSS文件。


真好!我喜欢标准javascript,尤其是标准CSS文件作为指纹。
马太福音

不正确 SO使用.NET并具有与您的示例相似的语法。我开发的网站使用相同的语法并在Django上运行。
Yuval Adam,

Rails也使用相同的URL模式。对于Rails应用程序。您可以看到相同的格式。例如:mysite.com/post/12
Rubyist

4

有些人甚至可能故意掩盖他们使用的技术。毕竟,我花了很长时间来调整apache,以使“ .asp”实际上运行perl脚本并将“由Microsoft IIS提供支持”放到我的页脚中,尽管事实上我使用的是MySQL。

这样,您将花费所有时间尝试使用它实际上没有的漏洞来入侵我的网站。



3

检查站点提供的cookie可以揭示基础框架。例如,CodeIgniter默认为一个讲故事的ci_sessions cookie。使用PEAR Auth的网站会做类似的事情。


3

我使用WebParser(http://www.cybermake.com),它可以确定网站使用的CMS。它可以确定多个网站的CMS,也可以从搜索引擎中提取给定关键字列表的网站列表。很给力的工具。



2

大多数ASP.NET网站很容易从URL中的.aspx进行识别。HTML源代码中也有一些明显的标志,例如名为__VIEWSTATE或WebResource.axd JavaScript 的隐藏表单字段。HTML元素通常具有以开头的id属性_ctl0

Rails站点通常会包含/ stylesheets中的样式表和/ javascripts中的JavaScript文件,并且每个URL通常都会有一个包含时间戳的查询字符串,以阻止缓存。表单字段通常会遵循的命名约定model_name[attribute_name]




1

您可以使用domaintools.com查找网站的服务器信息,并缩小到它是否为开源/ Microsoft:

http://whois.domaintools.com/stackoverflow.com

之后,只需在页脚中查找小费,例如“ Powered by WordPress”或“ vBulletin”等即可。


我需要找到另一个很酷的工具,以便在SO中添加书签。我必须将这些链接添加到问题中。
马太福音

1

是的,对于常见的CMS,例如Drupal,Joomla,Pligg和RoR等,都有一些明显的迹象。..ASP.NET的内容也很容易发现..但是,随着框架变得越来越晦涩难懂,它变得更加难以推论..

我通常将要侦听的站点与我所知道的使用特定技术构建的站点进行比较。有时可行..


1

转到Netcraft并使用“该站点正在运行什么?”。左上角的搜索框。单击此处以获取有关Stack Overflow的报告。它不一定是正确的(例如,可能存在缓存或负载平衡的方式),但它通常会为您提供所需的线索。



1

在Linux / OSX中,我经常使用简单的命令 curl -sI www.site.com


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.