python - 我们如何防止 FastAPI 中的 html 注入(inject)?

标签 python fastapi html-injections

我们正在使用名为 FastAPI 的 Python 框架开发 REST API。 html 注入(inject)代码安全测试失败。他们在 post payload 中发送一些 html 标签代码,我们将其插入 DB 并在 GET Response 中发送。在 FastAPI 中处理请求时,有什么方法可以防止这种 HTML 注入(inject)。

最佳答案

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

这只是在将输入数据放入数据库之前调用转义函数的问题。

Python 的标准库 html.escape 函数在这种情况下就足够了。

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

关于python - 我们如何防止 FastAPI 中的 html 注入(inject)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63488278/

相关文章:

python - Flask-Testing 和 Flask-SQLAlchemy : first_or_404()

python - 无法应用 CompilerFilter (lessc {infile} {outfile})

python - 将 fastapi 与 plotly.dash 结合并将 token 依赖项添加为 auth 的问题

html - 为什么这 5(6?)个字符被视为 "unsafe"HTML 字符?

android - 是否可以在 android 操作系统上运行简单的 python 游戏

python - 为什么改变环境和操作系统会改变 python flask 中的数据传输,为什么我应用的修复有效?

python - 用于机器学习预测的请求正文中的 FastAPI JSON 数组

python - FastAPI 是否支持具有嵌套结构(如 yaml)的配置文件?

javascript - XSS(跨站脚本)与 HTML 注入(inject)

HTML注入(inject)到别人的网站?