项目中textarea,特殊字符怎么处理?JSP

cfd406635982 2011-04-27 10:26:28
环境是JSP:

项目中一般都会有textarea,其中可能安全原因,有很多特殊字符。
原来他们的做法是,保存的时候采用替换用户的特殊字符
最后显示到页面的时候,再替换回来。
但是我感觉这种方法不是很好。
因为替换的话,可能会有问题,比如:把 <% 替换成某个字符 A
然后页面展示的时候,再把 A 替换回 <% ,但是可能用户原来的输入中本来就有A。
所有这样替换后就和用户输入不一致了。

请问大家在处理textarea提交的时候是怎么处理的?
...全文
896 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
虾说说 2011-04-29
  • 打赏
  • 举报
回复
只要转换过去存储到数据库,显示页面的时候,不需要替换回来....可直接显示...
虾说说 2011-04-29
  • 打赏
  • 举报
回复
这是我以前做留言板用的,不过是后台处理的,可以保存特殊字符,符号之类的...
你参考参考...

public class StringUtil {

/**
* 判断输入的字符串参数是否为空。
* @param args 输入的字串
* @return true/false
*/
public static boolean validateNull(String args) {
if (args == null || args.length() == 0) {
return true;
} else {
return false;
}
}

/**
* 判断输入的字符串参数是否为空或者是"null"字符,如果是,就返回target参数,如果不是,就返回source参数。
*/
public static String chanageNull(String source, String target) {
if (source == null || source.length() == 0 || source.equalsIgnoreCase("null")) {
return target;
} else {
return source;
}
}

/**
* 过滤<, >,\n 字符的方法。
* @param input 需要过滤的字符
* @return 完成过滤以后的字符串
*/
public static String filterHtml(String input) {
if (input == null) {
return null;
}
if (input.length() == 0) {
return input;
}
input = input.replaceAll("&", "&");
input = input.replaceAll("<", "<");
input = input.replaceAll(">", ">");
input = input.replaceAll(" ", " ");
input = input.replaceAll("'", "'");
input = input.replaceAll("\"", """);
return input.replaceAll("\n", "<br>");
}
}

steryzone 2011-04-29
  • 打赏
  • 举报
回复
特殊字符不允许提交;
对于特殊字符,提示不允许提交。。。因为如果你允许提交,那处理方面肯定要多下功夫
小V小V志 2011-04-28
  • 打赏
  • 举报
回复
可能要用到报文了。。。。。。。呵!
user_xj 2011-04-28
  • 打赏
  • 举报
回复
<a href='MyJsps.jsp?name=<%=java.net.URLEncoder.encode("Visual C++", "UTF-8")%>'>Visual C#</a> // '#' 是特殊字符不能直接提交 需要先转换格式
java.net.URLDecoder.decode(name, "UTF-8");//接收name参数后再转换成UTF-8的格式
zr167173 2011-04-28
  • 打赏
  • 举报
回复
我以前做的时候就是对特殊字符转义
漆黑之勺 2011-04-28
  • 打赏
  • 举报
回复
换个加密算法试试,寻找替换不是那么复杂,又不会被盗的那种算法,可以试试“位”那块儿的算法转换
  • 打赏
  • 举报
回复
特殊字符不允许提交;或者在后台对特殊字符做个转义
cfd406635982 2011-04-28
  • 打赏
  • 举报
回复
恩 现在我是转码的
调用编辑器 就太什么了
想问问大家是什么处理的
毕竟这个问题基本上都会有
mar_xxy 2011-04-28
  • 打赏
  • 举报
回复
URIencode下 试试
艾弗森 2011-04-28
  • 打赏
  • 举报
回复
调用编辑器
waveletsoft 2011-04-28
  • 打赏
  • 举报
回复
转码是王道
cfd406635982 2011-04-28
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 user_xj 的回复:]
<a href='MyJsps.jsp?name=<%=java.net.URLEncoder.encode("Visual C++", "UTF-8")%>'>Visual C#</a> // '#' 是特殊字符不能直接提交 需要先转换格式
java.net.URLDecoder.decode(name, "UTF-8");//接收name参数后再转换成UTF-8的格式
[/Quote]
我的想法也是在台用js先编码。。
liuke100 2011-04-27
  • 打赏
  • 举报
回复
我觉得 要模糊展示用户的资料 ,一般来说是不可以修改的。即使要修改也不应该允许修改原来的资料,只能新增或者全部替换,如果是新增或者全部替换的话那应该是没有任何问题的。
liuke100 2011-04-27
  • 打赏
  • 举报
回复
如果能修改的话,如果用户删除了(也许只删除特殊字符的一部分)你模糊化出来特殊字符 你该如何处理呢?
liuke100 2011-04-27
  • 打赏
  • 举报
回复
你是想资料模糊化吧,
我很想知道你这个textarea 能否修改?
如果能修改 就不是很好处理.

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧