我如何才能知道生成网站时使用了哪些技术?这可能吗?
例如 PHP、JSP、JSF、ASP.NET、Ruby、Python 等。
答案1
除非 URL 透露了它(例如http://something/blah.php),你不能。即使是 URL 也不可靠,因为理论上你可以配置一个 Web 服务器来使用.php
Java Server Pages 的扩展。这很奇怪,但这是可能的。所有可能的组合都是如此。
由于所有这些都是服务器端语言,因此作为客户端您唯一能看到的是 HTML。HTML 本身并不能揭示很多信息。
通过检查 HTML 标记并查找一些关键字,您可能能够找到更多信息。例如,一些 Web 框架或模板引擎会留下一些痕迹和特殊模式或关键字,它们可能会给您一些提示。不过,这非常具体,我不知道有任何工具可以完成这种任务(Google 除外)。
答案2
- 有一些在线工具可以确定特定站点使用了哪些 Web 服务器:
http://uptime.netcraft.com/up/graph?site=superuser.com
但这些都是非常不可靠的,因为服务器透露的信息很容易被网站所有者操纵或隐藏(这可能导致此特定图表中的服务器类型被标记为“未知”)。
- 另一种选择是调用网站上不存在的页面。错误消息 (404) 也可能暴露操作系统和服务器软件:
http://lexin2.nada.kth.se/测试(“测试”不存在)显示他们正在使用 Tomcat 和 Apache。类似地,您将看到来自 Windows 上的 Microsoft IIS、Linux 上的 PHP 等的消息。
大多数网站都会用更具信息量的消息替换标准 404 消息,例如此网站的: https://superuser.com/test因此那里没什么可聚集的。
- 一些网站开始更改文件扩展名,例如更改为“svd”(“SVD”是报纸的简称)。这种方法使得检测使用哪种脚本引擎变得更加困难: http://www.svd.se/kultur/sangerskan-amy-winehouse-dod_6343850.svd