我希望我的网站总是重定向到网站的安全https版本,我正在使用flask-talisman来做到这一点。然而,由于某些原因,添加这行看似不相关的代码破坏了我网站上的flask-bootstrap格式。
这是添加flask-talisman之前原始__init__.py文件和网站的外观
from flask import Flask
from config import Config
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
from flask_bootstrap import Bootstrap
from flask_heroku import Heroku
app = Flask(__name__)
app.config.from_object(Config)
Bootstrap(app)
heroku = Heroku(app)
db = SQLAlchemy(app)
migrate = Migrate(app, db)
from app import routes, models

添加flask-talisman后,__init__.py文件和网站如下所示
from flask import Flask
from config import Config
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
from flask_talisman import Talisman
from flask_bootstrap import Bootstrap
from flask_heroku import Heroku
app = Flask(__name__)
app.config.from_object(Config)
Bootstrap(app)
Talisman(app)
heroku = Heroku(app)
db = SQLAlchemy(app)
migrate = Migrate(app, db)
from app import routes, models

更改Bootstrap(app)和Talisman(app)行的顺序也不会有任何区别。有什么想法吗?我希望我的网站是安全的,但不是以破坏所有格式为代价的。
发布于 2019-04-22 06:36:07
这是一个老帖子,但答案是您需要将您允许的站点列入白名单,如本例所示(直接从flask-talisman网站):
csp = {
'default-src': [
'\'self\'',
'cdnjs.cloudflare.com'
]
}
talisman = Talisman(app, content_security_policy=csp)发布于 2020-02-07 23:52:54
基于jrborba上面的回答,这是我用来防止Tailsman破坏Bootstrap和jQuery的方法,但您可能不需要像我那样使用不安全内联行。
csp = {
'default-src': [
'\'self\'',
'\'unsafe-inline\'',
'stackpath.bootstrapcdn.com',
'code.jquery.com',
'cdn.jsdelivr.net'
]
}
talisman = Talisman(app, content_security_policy=csp)https://stackoverflow.com/questions/54730178
复制相似问题