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的主要内容,如果未能解决你的问题,请参考以下文章
如何在CSP的Partner Center API上以编程方式创建Azure订阅?