【问题标题】:Render flask jinja form inside javascript variable在javascript变量中渲染flask jinja表单
【发布时间】:2021-07-23 14:50:27
【问题描述】:

在 javascript 变量中渲染整个 jinja2 表单是否不安全?

假设一个路由返回一个表单。然后这个表单在javascript里面是这样渲染的:

const form = {{form}};

它在应用程序中被多次使用,并通过ajax请求发送回后端。

它会导致什么安全问题?

它会有所帮助吗 - 在 html 中呈现表单,隐藏它,然后使用 javascript 到 .clone().cloneNode() 在页面上多次重用表单?

【问题讨论】:

    标签: javascript python security flask jinja2


    【解决方案1】:

    我看到的唯一问题是您必须小心转义可能破坏 js 语法的字符。

    cloneNode 方法可以工作,但是你必须通过其他的箍来实现这些表单的 csrf。 该页面是否只会发布一个表单?然后你可以只将 csrf 令牌传递给 js 变量而不是整个表单。 该页面会发布多个 ajaxy 帖子吗?然后您可以每次返回一个新令牌并相应地更新现有表单。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-20
      • 2020-10-04
      • 2015-04-13
      • 1970-01-01
      • 1970-01-01
      • 2020-11-14
      • 2011-11-16
      相关资源
      最近更新 更多