Google AppEngine上的内容安全政策问题

时间:2018-05-03 21:47:12

标签: python google-app-engine flask google-cloud-platform

我无法让我的应用程序在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组织,我希望能够找到更多示例

1 个答案:

答案 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"]

如果您有其他非生产版本的应用。