首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >烧瓶-Talisman打破烧瓶-restplus‘傲慢的文件

烧瓶-Talisman打破烧瓶-restplus‘傲慢的文件
EN

Stack Overflow用户
提问于 2019-10-29 15:34:46
回答 1查看 497关注 0票数 1

我最近安装了烧瓶护身符,在定义了默认内容安全策略之后,我意识到我的Swagger文档页面没有加载。

Swagger文档页面是由烧瓶-restplus自动生成的,它只是停止了加载。

我定义的内容安全策略(CSP)如下:

代码语言:javascript
复制
csp = {
    'default-src': '\'self\''
}
talisman = Talisman(app, content_security_policy=csp)

能否简单地通过向CSP中的受信任域添加swagger来解决这个问题,就像这样?

代码语言:javascript
复制
csp = {
    'default-src': ["'self'", "*.swagger.com"]
}
talisman = Talisman(app, content_security_policy=csp)

还是需要定义其他参数?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-31 21:25:50

不,这是因为swagger使用内联脚本样式 - 以下是用于swagger的公开问题跟踪器,这是酒瓶公开发行-restplus

烧瓶-护身符允许对“按次查看”基础进行控制,因此您可以将“不安全内联”关键字添加到该端点的CSP中。如果用烧瓶-restplus无法做到这一点,您也可以使用before_request来修改CSP,不管它的路由前缀是什么,如概述的这里

编辑:

解决方法是为Swagger视图使用不同的CSP,该视图允许内联脚本和样式:

代码语言:javascript
复制
# Swagger CSP needs to have 'unsafe-inline' in the script-src and style-src fields
SWAGGER_CSP = {
    "script-src": ["'self'", "'unsafe-inline'"],
    "style-src": ["'self'", "'unsafe-inline'"]
}

# update the CSP for the Swagger view function
app.view_functions["swagger_ui.show"].talisman_view_options = {
    "content_security_policy": SWAGGER_CSP
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58610678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档