【问题标题】:How can we tell what language/technology was used to render an HTML document?我们如何知道使用什么语言/技术来呈现 HTML 文档?
【发布时间】:2009-10-05 00:40:37
【问题描述】:

一般来说,Web 应用程序可以呈现它喜欢的任何 HTML。因此,理论上,任何语言都可以呈现相同的 HTML 输出。

但是,我们可以通过一些方法尝试推断服务器端正在运行什么。例如,文件扩展名通常是致命的赠品(尽管从技术上讲它们可能是伪造的)。由于我在 ASP.NET 方面的经验,我知道我们可以识别 ASP.NET 应用程序的一种方法是在呈现的文档中存在 VIEWSTATE,尽管缺少视图状态并不一定意味着应用程序不是 在 ASP.NET 上运行

我们可以在服务器上运行一些操作系统/服务器指纹,但总的来说这并没有多大帮助——如今,即使是 Windows 服务器也可以运行相当多的应用程序平台。

还有哪些其他分析技术可以帮助我们确定服务器上运行的内容?某些语言还留下了哪些其他线索?

如果我们能够更好地理解我们的应用程序留下的工件,可能太小以至于我们没有注意到它们,我们可以通过从输出中删除它们来开始提高我们的安全性。

【问题讨论】:

  • 这不仅是重复的,我不认为它与编程相关,甚至一般有用。
  • 如果你能指出重复的问题,我很乐意结束这个问题。我找不到。
  • 我不会投票结束,@JJ,因为它至少与预编程相关,但我很难理解为什么你甚至会关心生成 HTML 的语言/技术。也许你可以启发我们了解它的用处。并不是说你必须证明你的问题是正确的,我只是对可能的应用程序真正感兴趣。
  • 刚刚编辑了它。这是一个安全问题。公众对您的应用程序了解得越多,就越容易被利用。例如,如果发现了一个新的 PHP 安全漏洞并且每个人都知道您正在运行 PHP,那么您可能会受到试图利用它的请求的冲击。这类似于服务器不应该返回的口头禅,例如可以指纹识别的服务器标头。

标签: web-applications web fingerprinting


【解决方案1】:

检查 HTTP 标头是一个好的开始。 默认情况下,IIS6 和 ASP.Net 似乎会插入一个以 ASP.Net 作为值的 X-Powered-By Header。

【讨论】:

    【解决方案2】:

    在 HTTP 标头中,您会(通常但不总是)找到一个名为 Server 的标头,它表示用于为网页提供服务的 Web 服务器。有时您会发现一个名为 X-Powered-By 的标头,它指示 Web 服务器使用的平台/技术。

    【讨论】:

      【解决方案3】:

      https://addons.mozilla.org/en-US/firefox/addon/2166

      正如其他人提到的,您可以签出 ServerX-Powered-By 标头。例如,stackoverflow 的服务器是Server: Microsoft-IIS/7.0,所以我可以推断这是由 ASP 驱动的。

      以下是我访问的一些随机网站和一些 X-Powered-By 标头:

      • X-Powered-By: PHP/5.2.9。 (php 论坛)
      • X-Powered-By: Phusion Passenger (mod_rails/mod_rack) 2.0.3 (rubyonrails.org)

      其他 Web 应用程序在页脚中有一个可以看到的签名,例如 Powered-By(应用程序名称)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-10-08
        • 2018-02-28
        • 1970-01-01
        • 2010-10-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多