我最近听说 Firefox 在请求源代码时会发出第二个 HTTP 请求。这是真的?
这是否意味着网络服务器可能会从原始服务器发出替代源?
最后,在查看恶意 HTTPS 源代码时,是否有我应该使用(或不应该使用)的工具?
我最近听说 Firefox 在请求源代码时会发出第二个 HTTP 请求。这是真的?
这是否意味着网络服务器可能会从原始服务器发出替代源?
最后,在查看恶意 HTTPS 源代码时,是否有我应该使用(或不应该使用)的工具?
是的,如果您查看源代码,Firefox、Chrome 等现代浏览器确实会发出第二次请求。这确实意味着来源可能与正在显示的来源不同。
如果你想要原始源代码,你应该使用一些附加组件,例如 Web 开发人员工具栏 (https://addons.mozilla.org/en-US/firefox/addon/60)。然后使用查看生成的源。
为网站提取源代码的最安全方法是使用无法呈现/执行下降内容的客户端。
您想寻找简单地提取数据的东西——比如 netcat、curl 或发出原始 HTTP 请求的自定义脚本/应用程序。
但同样,关键是使用不受下载内容影响的东西,因为它不理解它。
这取决于您要查看源代码的级别。
Firefox 的 View Source 为您提供渲染引擎所看到的源代码;不幸的是,FF 本身在渲染引擎看到它之前应用了一些转换,并且涉及一些缓存,所以它并不总是可靠的。
curl 和 wget 等工具将在 HTTP 级别显示确切的响应(包括 HTTP 标头,如果您要求它们)。这通常已经足够好了,它们会透明地为您处理 HTTPS,因此您不必担心协议的 SSL 部分。
如果你想更深入一点,试试 netcat 或 telnet - 这些基本上给你一个到服务器的字节流连接,允许你直接输入(或管道)HTTP 请求,并查看原始响应。不利的一面是,如果您违反协议,您将被踢出连接。
再深入一点,考虑一个网络嗅探器——wireshark 非常好,但相当复杂;它将为您提供原始数据包及其在网络堆栈不同级别的内容。
在Firefox上,我为此使用Firebug。F12激活萤火虫。
在Chrome上有一个内置的“开发者工具”Ctrl+Shift+I或菜单->工具->“开发者工具”。
两者都可以显示当前的 DOM 树(由脚本修改)以及原始 HTTP请求和响应。