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()
我們提供的服務有:成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、青田ssl等。為近千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術(shù)的青田網(wǎng)站制作公司
回答于?2022-11-16
就WEB應用來說,所謂危險的字符一般就是兩種
一個是SQL注入,一個是HTML語法注入
SQL注入主流的框架都可以搞定,JDBC永遠都使用preparedstatement就可以防止所有的sql注入,關(guān)鍵是用戶輸入都要通過占位符往里放,就自動的替換掉了特殊字符了。hibernate等orm框架都會搞定這個問題
HTML語法注入是指用戶輸入的html代碼回顯出來,這樣如果不轉(zhuǎn)義就可以破壞頁面的結(jié)構(gòu)或者注入腳本。所以現(xiàn)在的網(wǎng)站都不允許用戶直接輸入html代碼了,現(xiàn)在都是一些UBB標簽來完成一些效果。HTML主要最好的解決辦法是在回顯的時候進行轉(zhuǎn)義,所有的MVC框架或者展示層框架都有HTML轉(zhuǎn)義的支持,包括struts,spring,volicty等,注意觀察他們用于顯示的標簽
忽略轉(zhuǎn)義的工具類, org.apache.commons.lang.StringEscapeUtils,其中unescapeJava(String s)方法是來處理java轉(zhuǎn)義字符的,可以將字符串中的 “\”轉(zhuǎn)換為 “\”,“'”轉(zhuǎn)換為“'”等。通過這個方法處理以上字符串
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);
}
}
輸出結(jié)果: ?
\u79fb\u52a8\u4e92\u8054\u7f51\u5e94\u7528
移動互聯(lián)網(wǎng)應用
1.
windows下,路徑分隔符是\
但是\在Java中是轉(zhuǎn)義字符,所以用\\代表一個\ ,可是如果這么寫,就跨不了平臺了
比如在Linux下,就執(zhí)行不了,因此不推薦這種寫法,
2.
可以這樣寫/ ,無論是在Windows還是Linux,寫"正斜杠"/都沒問題
3.
但是也不好,最好的方式是:
使用java.io.File類的常量 separator ,會獲取當前操作系統(tǒng)的路徑分隔符,這就沒事了
比如你那個路徑可以寫成:
String separator = File.separator;
"D:" + separator + "User" + separator + "IT011" 字符串拼接就行,后面我不寫了
1)
與HTML相關(guān)的,最常用的是:
amp;
lt;
gt;
空格 nbsp;
雙引號 quot;
還有許多特殊字符,可以看一下
里
org.apache.commons.lang.StringEscapeUtils的源代碼就明白了。
2)
與URL相關(guān):
空格 +
a到z,A到Z,0到9,【-(空格)_(下劃線).(點)*(星)】這個四個符號以為的都需要進行轉(zhuǎn)換,轉(zhuǎn)換規(guī)則是%號加字符編碼。
3)
與javascript相關(guān)的與JAVA的轉(zhuǎn)義字符完全相同:
" \"
' \'
\ \\
換行 \n
制表符 \t
換頁符 \f
回車 \r
退格 \b
\u+字符編碼 就是各種字符(包括漢字,符號)