如果用户尝试提交HTML,如何验证失败?

时间:2015-10-19 05:09:04

标签: c# html asp.net validation

我有一个&# 可用,除了我尝试提交包含以下字符的字符串时:

{{1}}

我们的网络服务器拒绝该请求,声明我们不允许提交HTML。

如何执行客户端验证以防止包含这些字符的字符串或其他可以解释为HTML的字符?

2 个答案:

答案 0 :(得分:0)

我和#34;<"有这样的问题">"标签。 我在表单中添加了一个事件处理程序。当我点击提交按钮时,javasript代码在值发送到服务器之前有效。

<from ..... onsubmit = "return confSubmit();">

并在我的javascript中添加一个更改该字符的函数:

  function confSubmit() {
     document.getElementById("Employee").value = document.getElementById("Employee").value.replace(/</g, "&lt;");
document.getElementById("Employee").value = document.getElementById("Employee").value.replace(/>/g, "&gt;");
    }

答案 1 :(得分:0)

一种方法是限制用户仅输入某些字符或禁止键入某些字符。例如,您可以启用或禁用文本控件中允许的某些键,如

// check for only upper, lower char with [space]
function onlyAlpha(e, t) {
   if (navigator.appName == "Microsoft Internet Explorer") {
      var n = event.keyCode;
      if (n > 64 && n < 91 || n > 96 && n < 123 || n == 32) {
         return true
      } else {}
   } else {
      var n = t.charCode;
      if (n > 64 && n < 91 || n > 96 && n < 123 || n == 32 || n == 0) {
         return true
      } else {}
   }
   return false
}

仅允许使用字母数字

// check for upper, lower, [space], [,], [.] and numerals
function onlyAlphaNumeric(e, t) {
   if (navigator.appName == "Microsoft Internet Explorer") {
      var n = event.keyCode;
      if (n > 64 && n < 91 || n > 96 && n < 123 || n == 32 || n == 46 || n == 39 || n >= 48 && n <= 57) {
         return true
      } else {}
   } else {
      var n = t.charCode;
      if (n > 64 && n < 91 || n > 96 && n < 123 || n == 0 || n == 32 || n == 46 || n == 39 || n >= 48 && n <= 57) {
         return true
      } else {}
   }
   return false
}

您可以将它们用作

<asp:TextBox ID="txtText1" runat="server" onkeypress="return onlyAlpha(this,event);" MaxLength="30" />
<asp:TextBox ID="txtText2" runat="server" onkeypress="return onlyAlphaNumeric(this,event);" MaxLength="30" />

使用此类功能可以允许/禁止用户填写某些字符。您需要处理的一个问题是捕获 ctrl + v 。你可以找到许多SO帖子来处理这个问题。

如果您方便使用正则表达式,则可以从这些SO帖子javascript only allow alphanumeric and hyphen - value in text fieldREGEX (javascript) - Allow alphanumeric characters with special characters not in the first position

中获取提示

为了防止表单提交,更好的方法是使用一些客户端JavaScript库/ jQuery插件。有很多可用的。

为了安全起见,使用正则表达式或自定义检查(例如

)对输入应用服务器端验证会更好
If txtText1.Text.Contains("#") OrElse txtText2.Contains("<") Then
    'take action
End If