前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iframe跨域安全

iframe跨域安全

作者头像
路过君
发布2020-08-28 15:27:04
5.4K0
发布2020-08-28 15:27:04
举报

1.响应头X-Frame-Options

响应头X-Frame-Options是用来给浏览器指示允许一个页面可否在<frame>,<iframe>,<object>中展现的标记。网站可以使用此功能,来确保自己网站的内容没有被嵌套到其他网站中去,也从而避免了点击劫持 (clickjacking) 的攻击。

支持的指令

  • DENY 表示该页面不允许在frame中展示,即便是在相同域名的页面中嵌套也不允许。
  • SAMEORIGIN 表示该页面可以在相同域名页面的frame中展示。
  • ALLOW-FROM uri1,uri2 表示该页面可以在指定来源的frame中展示。

在nginx中配置

代码语言:javascript
复制
add_header X-Frame-Options DENY;
add_header X-Frame-Options SAMEORIGIN;
add_header X-Frame-Options "ALLOW-FROM http://www.a.com,http:///www.b.com";

兼容性

ALLOW-FROM指令在除IE以外的很多浏览器中无效,如在chrome中报错如下:

代码语言:javascript
复制
Invalid 'X-Frame-Options' header encountered when loading 'http://www.a.com':
 'ALLOW-FROM http://www.a.com' is not a recognized directive.
 The header will be ignored.

2.响应头Content-Security-Policy

响应头Content-Security-Policy允许网站管理员控制允许用户代理为给定页面加载的资源。除少数例外,策略主要涉及指定服务器源和脚本端点。这有助于防止跨站点脚本攻击(XSS)。

支持的指令

  • frame-ancestors uri1 uri2 允许一个页面可否在<frame>,<iframe>,<object>,<embed>,或<applet>中展现。 将此指令设置’none’为类似于X-Frame-Options: DENY

在nginx中配置

代码语言:javascript
复制
add_header Content-Security-Policy "frame-ancestors ‘none’";
add_header Content-Security-Policy "frame-ancestors http://www.a.com http://www.b.com";

兼容性

IE浏览器不支持

3.子域名跨域

site1.a.com

代码语言:javascript
复制
document.domain = "a.com";

site2.a.com

代码语言:javascript
复制
document.domain = "a.com"

将不同子域名的站点document.domain设置为相同的基础域名,则可实现跨域访问

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-08-25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.响应头X-Frame-Options
    • 支持的指令
      • 在nginx中配置
        • 兼容性
        • 2.响应头Content-Security-Policy
          • 支持的指令
            • 在nginx中配置
              • 兼容性
              • 3.子域名跨域
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档