天道酬勤,学无止境

docs

Python|fastapi之隐藏docs(安全初探)(三)

fastapi开发api确实fast.东西开发完了,前后端调试也方便,要上线了,怎么保证接口文档不被非法访问呢?简单想了几个场景 内网部署 将swagger的入口监听在内网,域名访问的话,也直接解析成内网,外网不能访问也是个不错的选择. 直接关闭 这招算是釜底抽薪了,直接关门,咱都不访问.算是最简单有效的办法.代码 app = FastAPI( docs_url=None, redoc_url=None ) 动态开关 默认关闭,确实有需要查看,临时打开,用完关闭,也是个不错的选择.原理就是:访问/docs时,默认没有,通过另一个接口临时调整一个参数,这时才允许访问.主要代码 app = FastAPI( docs_url=None, redoc_url=None ) @app.get('/add_docs') def show_docs_by_manager(): logger.info(app.docs_url) msg = 'ok' if app.docs_url is None: app.docs_url = '/docs' msg = 'docs is open !' else: app.docs_url = None msg = 'docs is disabled !' logger.info(app.docs_url) return response_struct

2021-03-27 00:25:09    分类:博客    fastapi   swagger   docs   linux

Python|fastapi之隐藏docs(安全初探)(三)

fastapi开发api确实fast.东西开发完了,前后端调试也方便,要上线了,怎么保证接口文档不被非法访问呢?简单想了几个场景 内网部署 将swagger的入口监听在内网,域名访问的话,也直接解析成内网,外网不能访问也是个不错的选择. 直接关闭 这招算是釜底抽薪了,直接关门,咱都不访问.算是最简单有效的办法.代码 app = FastAPI( docs_url=None, redoc_url=None ) 动态开关 默认关闭,确实有需要查看,临时打开,用完关闭,也是个不错的选择.原理就是:访问/docs时,默认没有,通过另一个接口临时调整一个参数,这时才允许访问.主要代码 app = FastAPI( docs_url=None, redoc_url=None ) @app.get('/add_docs') def show_docs_by_manager(): logger.info(app.docs_url) msg = 'ok' if app.docs_url is None: app.docs_url = '/docs' msg = 'docs is open !' else: app.docs_url = None msg = 'docs is disabled !' logger.info(app.docs_url) return response_struct

2021-03-27 00:25:06    分类:博客    fastapi   swagger   docs   linux