我无法使用flask-talisman使Firebase的“使用Google登录”按钮起作用。这是我的CSP:
我不确定是否缺少'script-src'的正确项目。我知道的一件事是,如果我从应用程序中完全删除此CSP,则一切正常。因此,我认为Firebase问题与我放入csp的内容有关。
RuntimeError: dictionary changed size during iteration
这是我使用Firebase的HTML相关代码。它取自Google的示例。
app = Flask(__name__)
csp = {
'default-src': [
'\'self\'',
'\'unsafe-inline\'',
'cdnjs.cloudflare.com',
'maxcdn.bootstrapcdn.com',
'ajax.googleapis.com',
'cdn.datatables.net',
'fonts.googleapis.com',
'gstatic.com',
'https://js.stripe.com',
],
'script-src': [
'\'self\'',
'unsafe-eval',
'\'unsafe-inline\'',
'cdn.firebase.com',
'*.firebaseio.com'
],
'object-src': [
'\'self\''
]
}
talisman = Talisman(app, content_security_policy=csp)
然后文件“ script.js”在下面:
<div id="firebaseui-auth-container"></div>
<button id="sign-out" hidden=true>Sign Out</button>
<div id="login-info" hidden=true>
<script src="{{ url_for('static', filename='script.js') }}"></script>
有人知道我想念什么吗?