我无法让我的应用程序在Google AppEngine上正常运行。我有一个Flask应用,其内容安全策略(CSP)由flask-talisman
管理我将API调用设置为http://my-project.appspot.com/api/foo,因为它们违反了" connect-src"政策。对此URL的请求属于def get(event, context):
db = client['db_name']
document_id = event['pathParameters']['id']
document = db[document_id]
document.fetch()
return json.dumps(document)
类型。以下实际信息:
xhr
在制作中,我的网址为https://my-project.appspot.com
对于评论应用,我的网址为http://review-dot-my-project.appspot.com
我的评论应用中使用了http协议,在生产中它是https。
我的CSP的相关部分如下:
Refused to connect to 'http://review-dot-my-project.appspot.com/api/foo' because it violates the following Content Security Policy directive: "connect-src 'self' *.appspot.com".
我尝试了很多次CSP的...
Talisman(app, content_security_policy={
'default-src': ["'self'", "*.google.com"],
...
'connect-src': ["'self'", "*.appspot.com"]
})
部分
connect-src
我似乎无法找到有关通配符如何工作的明确文档。由于Flask Talisman来自Google Cloud Platform组织,我希望能够找到更多示例
答案 0 :(得分:0)
我建议尝试这个:
'connect-src': ["'self'",
"http://review-dot-my-project.appspot.com",
"https://my-project.appspot.com"]
看起来你不需要外卡,你最好尽量使用你的CSP。
你也可以试试这个:
'connect-src': ["'self'",
"http://*.appspot.com",
"https://my-project.appspot.com"]
如果您有其他非生产版本的应用。