1

我尝试使用 iframe 访问一些网站。似乎它适用于某些网站,但不适用于其他网站。有什么想法吗?如何解决?iframe中的src链接是有效的,我可以直接访问。它只是没有出现在 iframe 中。

这与 X-Frame-Options 有关吗?如何绕过它?

非常感谢。

========

这是html代码:

<html>
<head>
<title>IFrame Test</title>
</head>

<body>
<iframe src="http://s.click.taobao.com/t?e=zGU34CA7K%2BPkqB07S4%2FK0CITy7klxn%2F7bvn0ay1PXvKwtZSEswjTW0qipvZgGECAqg4jFMvRrmqEsewCV2vrDIKlj1m7fQBXl8oXaLeyNdntQSWHx%2F4LzcWUbay3v1DbpVnqVPkubyxNIXPljUBoBNuLFC0ZLm4SV46zTasP3e6uSYcfiqrWYSyZV%2B7G&spm=2014.21191910.1.0" width="100%" height="600" >
</iframe>

</body>
</html>
4

1 回答 1

2

这与 X-Frame-Options 有关吗?

是的,不错。很难,甚至不可能确定服务器端采用了何种技术来防止内容被加载到不同域的框架中,但X-Frame-Options:SAMEORIGIN没有使用。这是尝试在 iframe 中加载相关网页时返回的响应标头:

HTTP/1.1 302 Moved Temporarily
Server: Tengine
Date: Sun, 27 Jan 2013 06:24:22 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: close
Location: [too long, irrelevant, removed ;)]
Expires: Sun, 27 Jan 2013 06:24:22 GMT
Cache-Control: max-age=0

如您所见,服务器以 HTTP 状态代码 302 ( moved temporarily) 进行响应,这通常用于 Web 服务器,而不是forbidden为了防止任何其他此类请求使 Web 服务器过载(或在日志中区分单个被拒绝的请求)文件)。但是,没有任何X-Frame-Options:SAMEORIGIN标题。无论如何,此类标头可能会或可能不会受到各种浏览器的尊重。

如何绕过它?

没有在涉及的 Web 服务器上做一些非法和讨厌的工作,或者知道 Web 服务器需要满足哪些条件才能授予对所请求位置的访问权限,这是不可能的。不过,您可以请求网络服务器的管理员为您的域设置此规则的例外。只是一个想法...

编辑:经过进一步调查,您提供的 URL 实际上重定向到

http://item.taobao.com/item.htm?id=13188785766&ali_trackid=2:mm_32761976_0_0:1359267664_4k8_1456591680&spm=2014.21191910.1.0

这意味着涉及一些服务器端重写规则。这对您的 URL 没有多大帮助,但如果您只想将目标页面呈现给最终用户,您可以使用它转换为的那个。问题是,您丢失了任何会话数据和/或跟踪 cookie,您可能想要强加给毫无戒心的用户并收集一些推荐计划的战利品。我并不是在暗示这就是你想要做的,但如果你这样做了,那么在 iframe 源中放入一个翻译后的 URL 是行不通的。;)

于 2013-01-27T06:41:58.840 回答