【问题标题】:Sanitize inputs before filling with user data?在填充用户数据之前清理输入?
【发布时间】:2020-06-13 02:56:57
【问题描述】:

将以前的用户输入数据绑定到 HTML 输入时,是否有必要在填充输入字段之前对输入进行清理?

我知道在页面上呈现用户输入之前清理它们的重要性。但是,假设用户的输入被保存到数据库中,被检索,然后分配给一个变量。然后该变量将数据绑定到输入。在清理输入时(无论是在绑定时还是在每个 oninputonchange 事件上),在输入禁止字符时都会给用户带来糟糕的体验。

例如:每次用户输入“&”字符时,输入字段中都会立即更改为“&”。如果 StackOverflow 这样做会很烦人。

【问题讨论】:

    标签: javascript html


    【解决方案1】:

    您是对的,这不是一个好的解决方案,但在渲染之前进行清理仍然是一个好主意。

    只需在将值存储到绑定变量之前对其进行清理,如果用户在此之后在输入字段中键入脚本就可以了。如果您使用输入的值,请在此之前再次对其进行清理。

    【讨论】:

    • 如果在存储到绑定变量之前进行了清理,输入字段仍将显示“&”在输入字符串中。
    • 是的,但是 OP 只是表示他们不希望用户的输入在 在他们键入时进行转换。不过,您说得有道理:也许他们应该考虑重新编码 HTML 实体代码以放入输入字段。
    【解决方案2】:

    html-encode 取自输入控件的值。 html-decode 之前的 html 编码值,然后将其放入输入控件。

    在处理它之前了解值的编码状态会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-15
      • 2021-07-27
      • 2016-04-23
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 1970-01-01
      相关资源
      最近更新 更多