日期:2014-05-17  浏览次数:20439 次

关于asp.net中文本框中输入"<",">"等字符提交报错的问题
目前我主要使用2种方法预防特殊字符的输入,一种是通过前台JS代码实现当用户输入特殊字符时自动替换为空格,但是感觉这种方式用户体验度不好;还有一种方式是通过在webconfig中配置
<pages validateRequest = "false" ... />  来解决,但是这种方式个人感觉存在安全隐患;
也问过别的程序员,说通过htmlEncode进行编码,但是编码后在提交的时候仍然会报错,希望有高手提供一个体验度比较好的解决方式,不胜感激!~

------解决方案--------------------
提交前,js用正则校验,.net自己也有校验组件,里面也可以写正则
------解决方案--------------------
通过SqlParameter进行参数化
------解决方案--------------------
 保存时,把特殊符号替换成html的符号,
显示时,把html符号替换成实际的符号


------解决方案--------------------
js+.net正则验证,去掉特殊字符
sql传参数存入数据库
------解决方案--------------------
为何不用c#方法过滤掉这些特殊字符呢。提供思路如下:
1.定义一个接口,里面写一个属性是否过滤特殊字符;
2.重写一些的控件(比如textbox,textarea,一般textbox就ok了,给它多行显示就可以当做textarea),它同时要继承你刚刚定义的那个接口;实现接口的属性,重写控件的Text属性根据接口的属性bool值做特殊字符过滤处理
3.特殊字符可以写到配置文件里面(比如config文件)
参考:http://blog.csdn.net/joyhen/article/details/8482608
------解决方案--------------------
一般textbox都是不让输这些特殊符号的吧  ,LZ可以再前台用js的正则过滤到


------解决方案--------------------
前台用正则过虑,后台用sqlparameter传参