【tips】unsafe-eval线上页面突然空白

EvalError: Refused to evaluate a string as JavaScript because ‘unsafe-eval’ is not an allowed source of script in the following Content Security Policy directive: “script-src ‘self’ ‘unsafe-inline’”.

导致页面无法展示。

CSP (Content Security Policy) 错误
违反了内容安全策略中的 unsafe-eval 限制。

原因是最近后端在做安全方面的修改。看了下接口返回的Content Security Policy:
default-src ‘self’; script-src ‘self’ ‘unsafe-inline’; style-src ‘self’ ‘unsafe-inline’; img-src ‘self’ data: https://xxxxxxx(我的域名); font-src ‘self’; object-src ‘none’; frame-ancestors ‘self’; form-action ‘self’; base-uri ‘self’; upgrade-insecure-requests;

nginx配置修改后Content Security Policy的
script-src ‘self’ ‘unsafe-inline’ ‘unsafe-eval’

恢复正常

还有一个未经验证的方法,因为我的代码里面有一段Echarts的代码

    areaStyle: {
            color: new Function('return ' + `{
            type: 'linear',
            x: 0,
            y: 0,
            x2: 0,
            y2: 1,
            colorStops: [{
                offset: 0,
                color: 'rgba(23,119,255,0.3)' // 渐变起始颜色
            }, {
                offset: 1,
                color: 'rgba(23,119,255,0.05)' // 渐变结束颜色
            }]
        }`)()
        },

这里用了new Function 违反了一开始报错的csp,nginx配置不改的话,可以试下修改js

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值