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设置为相同的基础域名,则可实现跨域访问
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2020-04-11 spring 启动时自动运行
2020-04-11 spring cloud oauth2授权服务 默认tokenService配置源码
2020-04-11 spring cloud 搭建oauth2授权服务 使用redis存储令牌
2020-04-11 spring cloud oauth2授权服务 clientDetails配置源码
2020-04-11 spring 验证框架
2020-04-11 IDEA 插件整理
2020-04-11 spring security笔记 默认登陆页面源码