You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java Web应用配置CSP兼容Microsoft Office URI Scheme问题

解决CSP拦截Microsoft Office URI Scheme的问题

你的问题核心是当前CSP的frame-src指令只允许同源('self')资源,但ms-word:属于自定义协议,不在'self'的覆盖范围内,所以被拦截了。

修复步骤:

  1. 添加Office协议到frame-src允许列表
    需要在CSP配置中把ms-word:(必须带冒号,这是协议的标准标识写法)加入frame-src的允许规则。如果还需要支持Excel、PowerPoint等其他Office文档,可以一并添加ms-excel:、ms-powerpoint:。

  2. 调整Java配置代码
    修改你的CSP初始化代码,显式指定frameSrc规则:

    final CSPHeaderConfiguration cspHeaderConfiguration = getCspSettings()
        .blocking()
        .unsafeInline()
        .frameSrc("'self'", "ms-word:", "ms-excel:", "ms-powerpoint:");
    
  3. 修改后生成的CSP头示例
    调整后最终的CSP响应头会包含:

    Content-Security-Policy: default-src 'none'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self'; connect-src 'self'; font-src 'self'; manifest-src 'self'; child-src 'self'; base-uri 'self'; frame-src 'self' ms-word: ms-excel: ms-powerpoint:
    

关键注意事项:

  • 协议名称后必须带冒号,否则CSP会将其识别为普通域名,无法匹配Office URI Scheme
  • 只添加实际需要的协议即可,避免开放不必要的权限
  • 该配置不会影响后续收紧其他CSP规则,仅针对Office相关协议跳转,风险可控

内容的提问来源于stack exchange,提问作者Alexander Holland

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 01:31:20