CSP 拒绝 API Twitter

Posted

技术标签:

【中文标题】CSP 拒绝 API Twitter【英文标题】:CSP refused API Twitter 【发布时间】:2016-10-02 06:58:23 【问题描述】:

当我尝试进行身份验证时,它的重定向 URL 有一个响应 400:

api.twitter.com/oauth2/token?oauth_token=xxxxxxxxxxxxxxxxxxxxxx:1 得到 https://api.twitter.com/oauth2/token?oauth_token=xxxxxxxxxxxxxxxxxxxxxx 400 () /oauth2/token?oauth_token=xxxxxxxxxxxxxxxxxxxxxx:1 拒绝 应用内联样式,因为它违反了以下内容 安全策略指令:“style-src https://abs.twimg.com https://abs-0.twimg.com". 'unsafe-inline' 关键字,哈希 ('sha256-4Su6mBWzEIFnH4pAGMOuaeBrstwJN4Z3pq/s1Kn4/KQ='),或随机数 ('nonce-...') 是启用内联执行所必需的。

在我的页面“connect twitter”中有一个元 CSP:

<meta http-equiv="Content-Security-Policy" content="default-src *;
style-src 'self' http://* https://* 'unsafe-inline'; script-src 'self'
http://* 'unsafe-inline' 'unsafe-eval'; img-src * data:" />

怎么了?

【问题讨论】:

【参考方案1】:

这是在抱怨 Twitter 的 CSP 指令,而不是你自己的。

你可以看到他们的指令here,它包含以下内容:

style-src https://abs.twimg.com https://abs-0.twimg.com

直接匹配错误信息。

我不知道为什么 Twitter 显然会阻止他们自己的 api 调用。

顺便说一句,我认为你的语法是错误的,因为不认为 https://* 是允许的,它应该是:

<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' http: https: 'unsafe-inline'; script-src 'self' http: 'unsafe-inline' 'unsafe-eval'; img-src * data:" />

【讨论】:

FWIW,CSP 消息与 Chrome 问题有关,它尝试将默认样式应用于文本响应; crbug.com/766965 不错!感谢您告知我们。

以上是关于CSP 拒绝 API Twitter的主要内容,如果未能解决你的问题,请参考以下文章

Cordova CSP 拒绝本地服务器

内容安全策略拒绝列出白名单

如何在CSP的Partner Center API上以编程方式创建Azure订阅?

jQuery 3.5.1 和 CSP 脚本-src-elem

内容安全策略拒绝连接到 Websocket 错误

内容安全策略 [错误] 拒绝加载脚本 safari