FastAPI 中如何防止 html 注入?

sam*_*mba 7 python html-injections fastapi

我们正在使用名为 FastAPI 的 Python 框架开发 REST API。html 注入代码安全测试失败。他们在 post 有效负载中发送一些 html 标签代码,我们将其插入到数据库中并在 GET 响应中发送相同的代码。在 FastAPI 中处理请求时,有什么方法可以防止这种 HTML 注入。

jsb*_*eno 7

是的。如果您没有明确说明,任何框架都不会神奇地改变您获得的内容。(想象一下,如果它是一个 REST API,用于记录来自内部系统的 HTML 片段,以便在另一个端点中渲染网页:您需要按原样使用 HTML)

只需在将输入数据放入数据库之前对输入数据调用转义函数即可。

Python 的标准库html.escape函数足以满足这种情况。

您的问题中没有代码,而且我并不了解 FASTAPI - 但如果它将有效负载放入数据库中而不经过您编写的任何代码,那么您应该对其进行自定义并放入此调用来预处理您的数据,或添加一个触发阶段(即事件订阅者)来为您执行此操作。