【问题标题】:restrict user from entering direct script into textfield限制用户将直接脚本输入文本字段
【发布时间】:2016-08-16 03:42:29
【问题描述】:

如何限制用户直接将 html 或 javascript 或 xml 文本直接粘贴到 textfield 或 textarea 中。

例如。如果我有带有文本字段的网页,并且我想在将该数据获取到服务器之前验证该文本字段,对于 原始 html 或 xml 或 javascript 等

我想限制这种来自用户端的输入。

【问题讨论】:

  • 到目前为止你做了什么?此外,您不应该清理数据客户端。无论如何,您仍然需要在服务器端进行消毒。人们可以编辑您的页面并绕过您的预防措施。
  • 你能给我举个例子来清理服务器端的数据吗?

标签: java html validation user-input


【解决方案1】:

限制用户表单输入文本以外的字符可能是您可以开始的一种方法,但是限制任何类型的输入将是一个很长的尝试。

要在客户端仅清理文本,您可以在文本框中使用字符串来匹配正则表达式。

例如:-

var sanitize = function(event){
     match = event.target.value.match(/^[a-zA-Z ]*$/gi);
     if(!match){
         alert("special char entered");
     }
}

将类似这样的内容附加到您的文本字段 onChange 事件中。 PS:- 上面的例子非常简陋,仅用于演示目的。

【讨论】:

    【解决方案2】:

    简短的回答:你不能!

    虽然可以在将数据发送到您的服务器之前进行一些 JavaScript 过滤,但您不能指望用户无法绕过此类检查。永远不要相信用户数据,总是安排(额外的)服务器端检查!现代 Web 应用程序技术( 等)将阻止 HTML 和脚本输入在输出页面上变为活动状态。对象关系数据库映射或准备好的语句也是如此,这有助于避免 SQL 注入。根据我的经验,将用户视为愚蠢或邪恶以最终获得符合人体工程学和安全的应用程序是有帮助的。

    【讨论】:

      【解决方案3】:

      您可以使用Class StringEscapeUtils。它有助于为 Java、Java Script、HTML 和 XML 转义和取消转义字符串。

      【讨论】:

        猜你喜欢
        • 2016-11-18
        • 2010-11-21
        • 1970-01-01
        • 2012-02-11
        • 2021-01-17
        • 1970-01-01
        • 2019-08-14
        • 2023-03-09
        • 2020-09-09
        相关资源
        最近更新 更多