允许文本框中出现非法字符
本文关键字:非法 字符 许文本 文本 | 更新日期: 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>