破坏CSP规则的本地托管字体

Mik*_*ike 3 typekit content-security-policy

我正在设置Content-Security-Policy标题Nginx,我坚持让本地托管的Typekit字体工作.

我正在使用以下脚本在Typekit本地托管字体,结果非常好,加载时间很短,没有FOUT:https://github.com/morris/typekit-cache

但现在问题是设置CSP来传递这些字体.我尝试了localStorage,但它没有用.

这些是我得到的错误:

[仅限报告]拒绝加载字体'data:font/opentype; base64,d09GMgABAAAAAFb0ABAAAAAAskgAAFaDAAIAAAAAAAAAAAAAA ... bJbjfY7U6T320POPp5HLprLxRlPwIJqShhBB1pRCUKkQmIKRpGoiON1kre7lGR0Z4h5ENMAQAA',因为它违反了以下内容安全策略指令:"font-src'self'

[仅限报告]拒绝加载字体 '数据:应用程序/字体WOFF;的base64,d09GRgABAAAAABwUAA4AAAAAKHQAAQAAAAAAAAAAA ... NfJJTVolXlnco7lXdLiWW32CnmmMrFlnJ5aXLN8srxynGxmBgfv9d + AQ8KdggAAAABVwJMPAAA',因为它违反了以下内容安全政策指令:"FONT-SRC '自我'

(我删除了为font-src策略列出的域名).

谢谢

Bar*_*ard 9

您可以看到它data在加载时创建font-src .这是字体的base64编码版本,而不是字体本身的链接.

因此,只要改变font-src 'self';font-src 'self' data: ;它应该工作的罚款.