php - 网站内的 iframe 会对网站构成威胁吗?该如何防止?
伊谢尔伦
伊谢尔伦 2017-04-10 14:35:29
[PHP讨论组]

如何防止来自iframe 内未知网站的安全威胁?
如果有威胁,该如何防止?
例如新浪微博的站内应用,他们是如何防止 iframe 内的网站获得用户信息的?

希望能得到你们的解答!谢谢!

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(5)
伊谢尔伦

@沙渺 还是存在威胁的,iframe的窗口可以替换顶级的窗口路径,从而实现跳转页面,造成钓鱼攻击的危险。

在HTML5标准之前,没有很好的解决办法。
HTML5定义了iframe的沙盒属性,可以选择性白名单iframe的功能。
具体实现:http://www.html5rocks.com/en/tutorials/security/sandboxed-iframes/

怪我咯

在内容提供方的服务器没有做出明确授权的条件下,javascript的跨域请求是所有浏览器所禁止的,没有任何商量的余地。

这一点上和iframe里外并没有任何关系。外边污染里边,里边窥探外边,或iframe之间交叉产生关联……只要跨域,都不允许。

所有的安全说来说去就基于这一条。iframe里外两个网页,其实在浏览器的安全系统中,与两个标签页并列,并没有什么区别。

大家讲道理

浏览器不是有同域限制的么?

如果两个页面的一级域名不同,那iframe里的页面怎么能控制外部页面呢?

当然,如果两个页面只是二级域名不同,比如a.segmentfault.com和b.segmentfault.com之间,可以通过JS将两个页面的document.domain设置为一样的,

document.domain=segmentfault.com;

这样两个页面的JS可以互相调用。这种特性可以用来在一个一级域名下的两个二级域名之间做跨域请求。

但是如果一级域名不一样,是没有直接控制的可能的,浏览器直接就给返回错误了,怎么产生威胁的呢?

巴扎黑

不同源的情况下,iframe 顶多获取外部页面的 URL,其他东西都获取不了。所以要确保 URL 里面别写太隐私的东西。

PHP中文网

就我目前的经验来看,iframe只要是跨域,你是拿它没办法的,连onclick事件都绑定不了,别说操作父页面DOM了,当然如果没有跨域,iframe是完全可以操作父页面or子页面的

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号