十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
package com.jingdu.common;\x0d\x0aimport java.io.IOException;\x0d\x0aimport java.io.PrintWriter;\x0d\x0aimport javax.servlet.Filter;\x0d\x0aimport javax.servlet.FilterChain;\x0d\x0aimport javax.servlet.FilterConfig;\x0d\x0aimport javax.servlet.ServletException;\x0d\x0aimport javax.servlet.ServletRequest;\x0d\x0aimport javax.servlet.ServletResponse;\x0d\x0aimport javax.servlet.http.HttpServletRequest;\x0d\x0aimport javax.servlet.http.HttpServletResponse;\x0d\x0a\x0d\x0apublic class IllegalCharacterFilter implements Filter {\x0d\x0a private String[] characterParams = null;\x0d\x0a private boolean OK=true;\x0d\x0a \x0d\x0a public void init(FilterConfig config) throws ServletException {\x0d\x0a \x0d\x0a// if(config.getInitParameter("characterParams").length()
我们提供的服务有:成都网站设计、成都网站建设、微信公众号开发、网站优化、网站认证、青田ssl等。为近千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的青田网站制作公司
回答于 2022-11-16
就WEB应用来说,所谓危险的字符一般就是两种
一个是SQL注入,一个是HTML语法注入
SQL注入主流的框架都可以搞定,JDBC永远都使用preparedstatement就可以防止所有的sql注入,关键是用户输入都要通过占位符往里放,就自动的替换掉了特殊字符了。hibernate等orm框架都会搞定这个问题
HTML语法注入是指用户输入的html代码回显出来,这样如果不转义就可以破坏页面的结构或者注入脚本。所以现在的网站都不允许用户直接输入html代码了,现在都是一些UBB标签来完成一些效果。HTML主要最好的解决办法是在回显的时候进行转义,所有的MVC框架或者展示层框架都有HTML转义的支持,包括struts,spring,volicty等,注意观察他们用于显示的标签
忽略转义的工具类, org.apache.commons.lang.StringEscapeUtils,其中unescapeJava(String s)方法是来处理java转义字符的,可以将字符串中的 “\”转换为 “\”,“'”转换为“'”等。通过这个方法处理以上字符串
public class Test(){
public static void main(String[] args) {
String s = "\\u79fb\\u52a8\\u4e92\\u8054\\u7f51\\u5e94\\u7528";
String s2 = StringEscapeUtils.unescapeJava(s);
System.out.println(s);
System.out.println(s2);
}
}
输出结果:
\u79fb\u52a8\u4e92\u8054\u7f51\u5e94\u7528
移动互联网应用
1.
windows下,路径分隔符是\
但是\在Java中是转义字符,所以用\\代表一个\ ,可是如果这么写,就跨不了平台了
比如在Linux下,就执行不了,因此不推荐这种写法,
2.
可以这样写/ ,无论是在Windows还是Linux,写"正斜杠"/都没问题
3.
但是也不好,最好的方式是:
使用java.io.File类的常量 separator ,会获取当前操作系统的路径分隔符,这就没事了
比如你那个路径可以写成:
String separator = File.separator;
"D:" + separator + "User" + separator + "IT011" 字符串拼接就行,后面我不写了
1)
与HTML相关的,最常用的是:
amp;
lt;
gt;
空格 nbsp;
双引号 quot;
还有许多特殊字符,可以看一下
里
org.apache.commons.lang.StringEscapeUtils的源代码就明白了。
2)
与URL相关:
空格 +
a到z,A到Z,0到9,【-(空格)_(下划线).(点)*(星)】这个四个符号以为的都需要进行转换,转换规则是%号加字符编码。
3)
与javascript相关的与JAVA的转义字符完全相同:
" \"
' \'
\ \\
换行 \n
制表符 \t
换页符 \f
回车 \r
退格 \b
\u+字符编码 就是各种字符(包括汉字,符号)