iframe跨域安全

1.响应头X-Frame-Options

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

支持的指令

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

在nginx中配置

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中报错如下:

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中配置

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

document.domain = "a.com";

site2.a.com

document.domain = "a.com"

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

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路过君_P

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值