帧跳转在页面访问和页面内操作触发页面访问之间表现不同

时间:2018-03-01 22:15:58

标签: javascript xss google-translate

我的简短问题

为什么此链接无效?

https://translate.google.com/translate?sl=ja&tl=en&u=https://www.j-platpat.inpit.go.jp/web/all/top/BTmTopPage

长版本

你会注意到https://www.j-platpat.inpit.go.jp/web/all/top/BTmTopPage包含这段代码:

<script type="text/javascript">
    if (self === top) {
        var antiClickjack = document.getElementById("antiClickjack");
        antiClickjack.parentNode.removeChild(antiClickjack);
    } else {
        top.location = self.location; // this part is important!
    }
</script>
  

如果我们在一个框架中,请逃离框架。

现在,当访问Google翻译并输入https://www.j-platpat.inpit.go.jp/web/all/top/BTmTopPage作为翻译页面时,点击&#34;翻译&#34; (也许告诉Google该页面不是英文,但是日文),一个被重定向到

https://translate.google.com/translate?hl=en&sl=ja&tl=en&u=https%3A%2F%2Fwww.j-platpat.inpit.go.jp%2Fweb%2Fall%2Ftop%2FBTmTopPage

从那里,它重定向到

https://translate.googleusercontent.com/translate_c?depth=1&hl=en&rurl=translate.google.com&sl=ja&sp=nmt4&tl=en&u=https://www.j-platpat.inpit.go.jp/web/all/top/BTmTopPage&xid=...&usg= ...

显示已翻译的网站。

现在,我想链接到已翻译的网站,这对于那些无法逃脱iframe的网站来说是可能的:

https://translate.google.com/translate?sl=en&tl=ja&u=https%3A%2F%2Fwww.nytimes.com%2F

然而,当我访问时

https://translate.google.com/translate?hl=en&sl=ja&tl=en&u=https%3A%2F%2Fwww.j-platpat.inpit.go.jp%2Fweb%2Fall%2Ftop%2FBTmTopPage

(或此问题中的第一个链接),我重定向,直到我再次点击搜索,基本上将我再次重定向到同一页面,然后再转到翻译的网站。

在控制台中,我看到这样的事情,因此似乎涉及XSS保护:

  

不安全的JavaScript尝试启动带有来源的框架的导航&#39; https://translate.google.com&#39;来自带有网址&#39; https://translate.googleusercontent.com/translate_c?depth=1&hl=en&rurl= ...&#39;的框架。尝试导航顶层窗口的框架是沙箱,但标志为“允许顶部导航”。或者&#39;允许顶部导航 - 按用户激活&#39;没有设定。

     

未捕获DOMException:无法设置&#39; href&#39;属性&#39;位置&#39;:当前窗口无权将目标框架导航到&#39; https://translate.googleusercontent.com/translate_c?depth=1&hl=en&rurl= ...&#39;

为什么?访问该页面和单击按钮访问同一页面有什么区别?如何重定向,而不是另一个?我能为此做点什么吗? sandbox参数可以提供任何帮助吗?

1 个答案:

答案 0 :(得分:1)

我不确定这是否能解答您的问题,但如果有任何帮助,Internet Explorer和Firefox的XSS保护极其弱。如果它是chrome的沙盒,它将不会在Firefox和Internet Explorer中。此外,普通网站无法阻止您打开链接,因此可能是您的浏览器导致问题。