javascript - 优雅地关闭 iframe 周围的框架(工具栏)

标签 javascript html xss

我创建了一个工具,用于一家相当受欢迎的音乐零售商。

该工具提供了一个增强的搜索功能(透明的 last.fm 结果、没有广告、没有跛脚、没有任何令人毛骨悚然的东西)而且我发现显示搜索的最有用和不引人注目的方式是使用备受诟病的 iframe 作为工具栏.这允许用户在不窃取用户注意力的情况下加载搜索。

我不是 iframe 的忠实粉丝,我认为添加一个“关闭此框架”(谷歌图像搜索)链接让用户可以快速轻松地重新获得对浏览器的控制权是微不足道的。

但是与 google 不同的是,我不知道 iframe 中内容的位置(仅通过 src 开始的位置)。

所以现在我发现自己置身于 XSS 世界和所有与安全相关的问题中。

我使用 Javascript 添加了“后退”和“前进”按钮以及从父级链接调用的历史对象(当用户进行搜索时,结果加载到 iframe 中,因此后退按钮允许他们返回在他们使用/仔细阅读搜索结果后转到主站点)。

有什么方法可以调用 iframe 中的当前位置并将页面(现在没有框架)重新加载到该位置?

我已经检查了 PHP $GLOBAL/$_SERVER 变量,看看我是否幸运。我知道存在安全问题,但我看不出这个特定函数与 history.back() 有何不同,在 history.back() 中浏览器在不“通知”我的父框架的情况下自行调用。

我知道我可以从 iframe 本身检索 src 位置,但当然假设用户没有导航到此页面之外,如果他们这样做了,他们不介意失去他们的当前位置并被重定向回页面最初由框架调用(...啊...)。

框架似乎旨在窃取窗口,无法优雅地“突破”并保持用户 session 的完整性。

难怪人们讨厌他们。 :)

最佳答案

在 Google 图像搜索中,当您删除框架时,它会按照您当前建议的方式运行,返回到原始框架源。由于 XSS 的原因,找到当前位置应该是不可能的,如果是,它将被视为一个错误并在后续的浏览器补丁中修复,因此如果存在这样的怪癖,最好不要依赖它。不过,如果能优雅地突围而不透露位置,那就太好了。这可能是您可以向 HTML5 提出的建议组。

关于javascript - 优雅地关闭 iframe 周围的框架(工具栏),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/141427/

相关文章:

javascript - 在 JavaScript 中验证 GUID

javascript - visual studio 代码 intellisense 不适用于 dojo amd 代码

javascript - 使用 JavaScript 访问跨域 iframe 元素

javascript - ng-bind-html 不会阻止跨站点脚本

javascript - 是否有可能在具有内联样式的样式标签上受到 XSS 攻击?

Java网站防护解决方案(尤其是XSS)

javascript - 将 div 附加到特定元素以使用 javascript 显示

javascript - 在网站上实现动态列表的最有效方式

javascript - gulp-svg-sprites 输出 [Object object] 而不是图标

javascript - 在 jQuery 悬停时移动 div 背景位置