允许文本框中出现非法字符

本文关键字:非法 字符 许文本 文本 | 更新日期: 2023-09-27 18:15:20

我创建了一个文本框供用户输入他们的评论。因此,有时他们会复制应用程序中出现的错误,并将其粘贴到文本框中并附带注释。它可能包含非法字符(例如:</11>),但它应该保存,但我的。aspx是不允许的。我不知道该怎么处理。谢谢!

允许文本框中出现非法字符

如果您希望用户编辑TextBox并输入html标签您可以通过

禁用此功能
 <%@ Page validateRequest="false" ...>

或在web中。为整个应用程序配置:

<system.web>
  <page validateRequest="false" />
</system.web>

注意这个ValidateRequest属性不存在的原因。当您更改其默认值时,不安全的输入将是接受。因此,您需要验证每个用户的输入避免跨站脚本攻击,如插入恶意代码JavaScript、ActiveX、Flash或HTML


另一个聪明的解决方案是通过javascript替换用户编写的文本,使其安全验证。
< anyword>,而不是<anyword>被认为是安全的!

function validateTxt() {
    $("textarea, input[type='text']").change(function () {
      html = $(this).val(); //get the value
      //.replace("a" , "b")  works only on first occurrence of "a"
      html = html.replace(/< /g, "<"); //before: if there's space after < remove
      html = html.replace(/</g, "< "); // add space after <
      $(this).val(html); //set new value
   });
}
$(document).ready(function () {
      validateTxt();
});

我假设你正在谈论一个异常消息,如"一个潜在危险的请求。从客户端检测到表单值…"

是正在运行的asp.net请求验证。可以在页面或站点级别禁用此功能,但这样做存在相关风险。

在page指令或web.config中使用ValidateRequest="false"来完成。

更多信息在这里:http://www.asp.net/learn/whitepapers/request-validation

您可以在传输之前尝试用Base64对内容进行编码。但我不确定我的解决方案是不是真的很好。

http://nolovelust.com/post/classic-asp-base64-encoder-decoder.aspx

这可能是由于HTML被服务器端拒绝,作为安全预防措施。

你可以禁用这个检查:

将以下属性添加到页眉<%@ Page validateRequest="false" %>

或在Web中进行应用范围的更改。配置:

<configuration>
   <system.web>
      <pages validateRequest="false" />
   </system.web>
</configuration>