srm*_*ark 13 javascript iframe
我正在做一些简单的Web集成工作,我正在通过使用iframe来完成.我的主窗口有一些javascript,它与我的服务器交互,将iframe重定向到所需的URL.其中一个目标页面遗憾地包含以下代码:
if (top.location != location) {
top.location.href = document.location.href ;
}
Run Code Online (Sandbox Code Playgroud)
该脚本因跨站点限制而死亡,并阻止该页面正确呈现.我无法修改该页面的来源(我正在整合的第三方).
我怎么能解决这个问题?
谢谢
小智 23
这是我的第一篇文章,所以如果它不起作用,请不要丢弃我,但这个修复似乎在IE中对我有用.将security ="restricted"添加到您的框架中.
例:
<iframe id="frame_id" name="frame_name" security="restricted" src="page.html">
</iframe>
Run Code Online (Sandbox Code Playgroud)
编辑:我找到了更好的解决方案.这不会阻止脚本,也不需要javascript.尝试使用sandbox ="..."
顶部导航是您想要阻止的,因此请将其保留,并且不允许这样做.遗漏的任何东西都会被封锁
恩.
<iframe sandbox="allow-same-origin allow-scripts allow-popups allow-forms" src="http://www.example.com"></iframe>
Run Code Online (Sandbox Code Playgroud)
Col*_*ard 12
有一种技术可以禁用帧破坏代码,如更新的SO问题所述:
事实证明,您的帧破坏代码可能被破坏,如下所示:
Run Code Online (Sandbox Code Playgroud)<script type="text/javascript"> var prevent_bust = 0 window.onbeforeunload = function() { prevent_bust++ } setInterval(function() { if (prevent_bust > 0) { prevent_bust -= 2 window.top.location = 'http://server-which-responds-with-204.com' } }, 1) </script>
此代码执行以下操作:
- 每次浏览器尝试通过
window.onbeforeonload
事件处理程序离开当前页面时,都会递增计数器- 设置一个通过每毫秒触发的计时器,
setInterval()
如果它看到计数器递增,则将当前位置更改为攻击者控制的服务器- 该服务器提供具有HTTP状态代码204的页面,这不会导致浏览器在任何地方导航
小智 6
一个有效的问题,一个我希望更多人会认真对待的问题,而不仅仅是回应一些关于"尊重"那些材料相关联,有时是无意的人的意愿的蹩脚评论.
那么尊重流量,那架破坏javascript的窃取?
在网络礼节方面,由于这个原因,框架脚本实际上是一个很大的禁忌.
使用框架或iframe有许多真实的,无辜的原因,并且它不仅非常容易,而且非常常见,因为代码,特别是url,可以合法地或非法地插入到该框架集内的页面中,故意或以其他方式的交通,到另一个页面,相当粗鲁然后打破框架集,并窃取交通.
网站管理员使用的正确网络礼仪方法,不希望他的材料显示在框架集中,无论是有意还是无意地完成,都是将重定向脚本设置为首页,显示消息通知页面请求的冲浪者不打算在框架中查看,如果他们希望查看该页面,那么他们可以在网址上查看,然后链接,在新标签页或浏览器页面中打开不打破框架集,并窃取原始网站的流量,从而允许冲浪者自己做出选择,以确定他们实际想要冲浪的地方.
我希望更多的网站管理员能够尊重这种网络礼节.
小智 5
经过多次搜索,我开发了一个简单的技巧 我在自己的网站上创建了一个虚拟页面,i框架需要这个页面.然后我在虚拟页面中有一个i帧,它要求站点突破帧.它突破了第一帧,但由于虚拟页面在我的网站上,它整齐地保留在首页的框架中.violla
归档时间: |
|
查看次数: |
21740 次 |
最近记录: |