你如何确定一个网站是用哪种技术构建的?

157

经常会遇到外观漂亮或功能强大的网站,想知道用什么技术创建它。有哪些技巧可用于确定特定网站是用什么建立的?

很少有框架包括任何类似于Web编辑器的生成器元标记。是否有特定语言和/或框架的明显迹象?


答案摘要

网站URL可能会泄露出框架和/或编程语言,但不能完全依赖(例如,文件扩展名如.asp)。HTTP响应头、Cookies、样式表和源代码注释也可能给出线索。

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

Firefox扩展:

Chrome扩展:

  • SimilarTech - 网站技术调查工具
  • PageXray - 分析网页,显示其中使用的Web技术和性能信息
  • Bookmarklets:


    1
    我喜欢使用Firefox插件Wappalyzer,一眼就能看到网站所使用的技术。 - Naoise Golden
    http://guess.scritch.org/ 是一个查询网站详细信息的不错工具。 - Ehtesh Choudhury
    我想知道是否有一种方法可以隐藏底层服务器语言。 - shababhsiddique
    1
    @shababhsiddique 默认情况下,底层服务器语言是“隐藏”的。没有任何标准技术可以隐藏您的网站构建方式 - 只需不要让您的后端输出任何告示牌给前端即可。 - Zach Lysobey
    @ZachL,我之前发现了一些网站,但无法确定它们是用什么建造的。以apple.com为例,http://builtwith.com/?https%3a%2f%2fwww.apple.com%2f ,你如何找出来呢?如果你找不到,那么苹果是如何隐藏的呢? - shababhsiddique
    18个回答

    67
    您可以使用http://builtwith.com来确定所使用的服务器和编程语言。例如,它告诉我 SO 使用IIS7、Google Analytics、HTML4和UTF8。
    如果您想了解框架...那么仅从网站上观察可能不太可能。为什么不给他们写封电子邮件呢? ;)

    2
    给他们写封电子邮件,这就是横向思维。好主意!我喜欢builtwith.com,只需要一些方法来收藏这个答案。干杯。 - Mat
    构建于cant tell SO,不知道它是否在IIS7上,你是如何获取这些信息的? - shababhsiddique
    @shababhsiddique:在2008年它是可以的。 - Kim Stebel
    我如何隐藏我的网站信息呢?我还没有看到相关的资源。 - shababhsiddique
    @shababhsiddique:那是一个独立的问题,如果它还不存在,你应该适当地提出它。 - Kim Stebel
    太棒了。谢谢你。 - B Seven

    20

    有许多事情可以观察,但这并不能确保网站背后的技术。通常人们会想要隐藏这样的信息,因为暴露的信息越多,恶意方就越容易识别安全漏洞或拒绝服务漏洞。

    如果我感兴趣的话,可能会按照没有特定顺序查看以下内容:

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

    顺便说一句,其他答案提到的工具只是自动地更快地查看了上述一些属性而已。 :)


    1
    有很多好的答案,所以我稍微延迟了选择一个被接受的答案,但这个最合适。它涵盖了在深入研究自动化工具之前使用的基本起点。 - Mat

    8

    很高兴你喜欢它 :) 你也可以点击问题下方的“正确图标”来将其标记为已接受的答案,如果你想的话 ;) - balexandre
    你知道 Chrome 的域名详情扩展吗? - Andrew Hubbs
    @Andrew 至少尝试过查找吗?这是我在谷歌搜索中得到的第一个结果! - balexandre

    6

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

    例如 "http://abcxyz.com/node/46" 看起来非常像Drupal。

    此外,许多框架都有它们使用的标准JavaScript和CSS文件。


    不错!我喜欢标准的JavaScript和特别是标准的CSS文件作为指纹。 - Mat
    不正确。SO使用.NET,并且具有类似于您示例的语法。我开发的一个网站使用相同的语法并运行在Django上。 - Yuval Adam
    Rails应用程序也使用相同的URL模式。您可以看到相同的格式。例如:http://mysite.com/post/12 - Rubyist

    4
    有些人甚至会故意隐藏他们使用的技术。毕竟,我只需要稍微调整一下Apache,让“.asp”实际上运行Perl脚本并在页脚中放置“由Microsoft IIS提供支持”,尽管我使用的是MySQL,你就会花费所有时间尝试利用它实际上不存在的漏洞来攻击我的网站。

    4

    请查看Chrome Sniffer,这是一个很好的轻量级解决方案,适用于it技术。


    不错的Chrome扩展,截至2014年,它可以为您提供非常完整的技术堆栈信息。这与BuiltWith扩展程序配合使用效果很好(后者提供更多与网络相关的信息)。 - user9869932

    3

    我使用WebParser(http://www.cybermake.com)可以确定一个网站所使用的CMS。此工具可以同时确定多个网站的CMS,并且可以从搜索引擎中为给定关键字列表拉取网站列表。这是一款功能强大的工具。


    3
    http://guess.scritch.org/可以用于CMS的识别。
    只需输入URL,它会尝试猜测CMS。在这种情况下,它告诉我我的博客正在运行WordPress 3.4.2(这是正确的,我刚刚检查过!) enter image description here

    不太好,只读取页面元标签... :( - Silvio Delgado

    3
    检查网站提供的cookies可以揭示其底层框架。例如,CodeIgniter默认使用一个显眼的ci_sessions cookie。使用PEAR Auth的网站也会采取类似的措施。

    2

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接