【问题标题】:Disable html/javascripts commands in text fields在文本字段中禁用 html/javascripts 命令
【发布时间】:2013-08-09 20:30:28
【问题描述】:

如何防止文本字段中的输入包含 HTML 和 JavaScript 代码?

示例:我有一个输入文本字段。如果用户输入 javascript 指令,它们就会被执行。

如何修改

<script>alert('aces')</script> 

这样它会在我的字段中显示为普通文本,而不是在我尝试列出它时显示为警报?

【问题讨论】:

  • 你想在哪里列出它?您是打算执行指令,还是您想要防止的副作用?您有可以在这里发布的代码示例吗?
  • @bucky24 我试图阻止用户表单这样做。示例: 如果我插入这些行,它不会将其视为简单文本,而是将其视为说明,并且这将完全弄乱我的页面 fuuued up 或
  • 从输入中获取值时,默认为字符串。您将他们输入的内容的价值放在哪里?
  • 我将输入放在 Map 上以模拟数据库。在我关闭 servlet 后它们将被删除
  • 你修错了;用户在文本字段中键入 HTML 或 JavaScript 应该是无害的,因为您应该从不执行用户输入。如果你这样做,你会遇到比用户在文本字段中输入 HTML 更大的问题。

标签: javascript html text field


【解决方案1】:

您是否研究过 underscore.js(Backbone.js 使用)之类的库?

它带有转义功能,可防止用户输入的 javascript 运行。 http://underscorejs.org/#escape 和 http://underscorejs.org/#unescape

所以你会写:

警报(_.escape(USERINPUT));

当您将用户输入添加到 DOM 时,这一点变得更加重要,出于安全原因,您需要转义输入(或只允许选择诸如 之类的无害标签)。

【讨论】:

    猜你喜欢
    相关资源
    最近更新 更多
    热门标签