如何分析链接以找出实际链接

如何分析链接以找出实际链接

有时下载某些内容时,我发现链接不是文件的直接链接。

例如,这是下载 PDF 文件的链接:

http://ishare.down.sina.com.cn/15181391.PDF?ssig=2jEFaNQs7K&Expires=1312905600&KID=sina,ishare&IP=1312761745,68.50.222.

我想知道如何找出/破解该文件的实际链接(即 http://*.PDF)?

此类以及类似的不显示直接链接的技术叫什么名字?参考资料,例如 Wikipedia,...?

答案1

是的,有时

有两种情况很常见。您的链接不再有效,因此我不确定这种情况的实际情况,所以我将在另一个链接上进行总结。

HTTP 重定向

这是您在使用Bit.ly和其他服务时看到的内容。接下来要做的是提供 HTTP 重定向响应。当您访问http://bit.ly/oH3410它会重定向到实际的 URL。有时一个 URL 会重定向到另一个。如果你将 URL 插入http://web-sniffer.net/或者通过使用,[curl][1] -I http://bit.ly/oH3410您将看到返回指向新位置的 301。

因此,要处理 HTTP 重定向,您只需循环 HTTP HEAD 请求,直到您在 300 秒内停止获取响应(希望获得 200)。请记住,它们可能会循环重定向,永远不会结束。您可以使用 CURL 或任何 HTTP 工具执行此操作。

下载器页面

大多数下载网站都使用这种方法。你点击下载链接,它会带你进入一个有很多广告的页面,并显示“你的下载将很快开始”之类的信息。[例子]。使用这些,您可以尝试从 URL 解析实际的直接链接,但这将是特定于站点的,并且大多数站点不会包含它以防止您绕过它。这可以通过meta http-equiv="refresh"标头中的标签或 JavaScript(最常见)来完成。不过,JS 通常有一个标头回退。

不过,有一个解决方案。如果你查看下载页面上的源代码,你通常会看到一个<meta http-equiv="refresh">标签(通常在<noscript>标签中),其中有一个URL指向实际下载的属性。因此,使用 CURL(或任何其他 HTTP 工具)下载页面,解析它,并获取该值。但如果网站真的想搞砸,他们可能会排除这一点,从而要求你使用 JavaScript 来下载文件。

可能还有一个 JavaScript 块链接到下载。它可能被混淆了,或者从另一个 URL 链接过来。尝试解析它时,您的进度可能会有所不同。页面上可能还有一个“直接链接”。您可以尝试一些技术来找到它,但同样,它可能通过 JavaScript 被混淆了,甚至完全丢失了。

答案2

这也许是不可能的。网站可能会给你带来上百次重定向,然后你才能找到文件。

此外,可以使用 javascript 根据提供给服务器的 URL 提供链接。

答案3

该网站可能已编写脚本,当它收到某个命令(URL 可以传递命令)时,它可能会返回 PDF 文件(或其他文件),而无需重定向。这是一个服务器端的事情,取决于网站的编码方式。如果不实际从服务器请求该链接,您不太可能弄清楚如何获取该文件。有时,即使您知道直接 URL,您也可能没有权限访问该直接链接。有些网站经过编码,因此直接链接不起作用。

答案4

这些重定向链接通常也与会话状态相关联。它们会根据您的会话登录信息进行一些权限检查,然后再向您提供链接 - 无权访问资源 = 无权访问资源的链接。它可用于提供对 Web 根目录之外的文件/资源​​的访问权限,并由应用程序流回请求者,而不是通过直接 URL 提供。但前提是您的权限允许这样做。

两者的一个例子是这里。 它会根据添加额外 URL 参数的“mkoenig”字符串将您重定向到另一个 URL。重定向是在服务器端编码中完成的,您无法(或至少不应该)看到。如果您随后转到“Web 文件”,则列出的文件只是老师已公开的文件。她可能还有其他您无法访问的文件,这些文件不会列出。这也由服务器端编码处理,与它将返回/不返回的内容有关。

如果不入侵服务器或者无法访问服务器端源代码,我相信您无法获得实际的链接,而且即使可以获得,除非您的会话权限告诉服务器允许您访问它,否则它可能也无济于事。

格雷格

相关内容