关于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传参