浏览器迁移引发的CSP(内容安全策略)问题排查

背景

  由于IE浏览器停止更新,客户要求我们把系统迁移到谷歌浏览器。因为谷歌浏览器增加了CSP(内容安全策略)校验,我们添加了CSP规则,然后在公司环境测试通过,可以正常访问。但是部署到客户的测试环境中,却因为CSP报错加载不了js,悲剧了。。。
  由于问题一直找不到,公司组织了一个排错小组。因为我参与过项目,所以小组把我也包括在里面。排错没什么技巧,要么是熟练一眼看出来;要么就是把所有可能因素列出来,然后一个个排除,最终确定问题点。

排错过程

  根据报错信息,确定是CSP策略配置问题导致js不加载。那么就有可能是CSP配置错了。但是在我们公司自己的环境配置后,是可以加载js的,页面也能正常访问。这说明配置没有问题。
  我猜想可能是CSP在客户环境可能没生效。因此让客户在浏览器下按下F12,看看响应头的信息内容,果然没有我们配置的CSP信息。再看公司的响应头是有这部分CSP内容的。问题前进一步,是客户的环境丢失了CSP配置。
  我猜测客户在tomcat和浏览器之间使用了某个中间件,这个中间件没有把CSP配置响应给浏览器。经过询问客户,他们是使用了apache服务器进行请求转发的。
  接着验证,让客户把apache关闭,直接访问tomcat,问题没有出现。这就确认了是apache服务器的问题。经检查apache本身配置了csp策略,覆盖了我们应用程序的csp策略。删除apache配置的csp,问题解决。。。

总结

  问题排错,其实就是一个猜想-验证的过程,把可能产生问题现象的环节全列出来,然后一个个验证,排除,直至找到问题。排错过程中特别忌讳想当然认为某个环节一定没问题。往往认为最不可能的点,反而就是问题所在。
  在排错的时候有两点要注意,
一,过于相信某个点没有问题,而问题恰恰就在这里。
二,引起问题的因素没有列全。
  文中的问题就是没有把问题因素列全,花费的了大量时间在配置信息上打转,尝试各种配置,就是解决不了问题,因为配置本来就没错。

当你排除所有的可能性。剩下最后一个的时候,即使再不可思议也是真相

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值