導航:首頁 > 凈水問答 > Java過濾URL特殊字元防注入

Java過濾URL特殊字元防注入

發布時間:2023-03-06 02:54:47

❶ JAVA特殊字元過濾方法

public static String StringFilter(String str) throws PatternSyntaxException {
// 只允許字母和數字
// String regEx = "[^a-zA-Z0-9]";
// 清除掉所有特殊字元
String regEx="[`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】『;:」「』。,、?]";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
return m.replaceAll("").trim();
}

❷ jsp\java 如何編寫過濾器過濾特殊字元

package com.jing.common;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class IllegalCharacterFilter implements Filter {
private String[] characterParams = null;
private boolean OK=true;

public void init(FilterConfig config) throws ServletException {

// if(config.getInitParameter("characterParams").length()<1)
// OK=false;
// else
// this.characterParams = config.getInitParameter("characterParams").split(",");
System.out.println("初始化");
}

@SuppressWarnings("unchecked")
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain arg2) throws IOException, ServletException {
HttpServletRequest servletrequest = (HttpServletRequest) request;
HttpServletResponse servletresponse = (HttpServletResponse) response;
String param = "";
String paramValue = "";

//設置請求編碼格式
servletresponse.setContentType("text/html");
servletresponse.setCharacterEncoding("UTF-8");
servletrequest.setCharacterEncoding("UTF-8");
java.util.Enumeration params = request.getParameterNames();
//循環讀取參數
while (params.hasMoreElements()){
param = (String) params.nextElement(); //獲取請求中的參數
String[] values = servletrequest.getParameterValues(param);//獲得每個參數對應的值

for (int i = 0; i < values.length; i++) {

paramValue = values[i];

//轉換目標字元變成對象字元,可以多個。後期擴展特殊字元庫用於管理
paramValue = paramValue.replaceAll("'","");
paramValue = paramValue.replaceAll("@","");
paramValue = paramValue.replaceAll("胡錦濤","***");

//這里還可以增加,如領導人 自動轉義成****,可以從資料庫中讀取非法關鍵字。
values[i] = paramValue;

}

//把轉義後的參數重新放回request中
request.setAttribute(param, paramValue);
}
//繼續向下 執行請求,如果有其他過濾器則執行過濾器
arg2.doFilter(request, response);
}

public void destroy() {
// TODO Auto-generated method stub
}
}

❸ java web如何防止html,js注入

在java Web體系中,可以寫自定義標簽,過濾用戶輸入,也可以寫一個filter過濾器。比如說自定義標簽。

開發步驟:

1 寫一個標簽處理類

2在/WEB-INF/目錄下,寫一個*.tld文件,目的是讓Web容器知道自定義標簽和標簽處理類的對應關系

3 在JSP頁面中,通過<%@taglib%>指令引用標簽庫.

4 部署web應用,訪問simple.jsp即可

其中,標簽處理類可以這樣寫,轉義大於號,小於號等特殊符號。

packagecn.itcast.web.jsp.tag;

importjava.io.IOException;
importjava.io.StringWriter;

importjavax.servlet.jsp.JspException;
importjavax.servlet.jsp.PageContext;
importjavax.servlet.jsp.tagext.JspFragment;
importjavax.servlet.jsp.tagext.SimpleTagSupport;

//<simple:filter>標簽處理類
{
publicvoiddoTag()throwsJspException,IOException{
JspFragmentjspFragment=this.getJspBody();
StringWriterwriter=newStringWriter();
jspFragment.invoke(writer);
Stringtemp=writer.getBuffer().toString();
//結果必定是轉義後的字元串
temp=filter(temp);
PageContextpageContext=(PageContext)this.getJspContext();
pageContext.getOut().write(temp);
}
publicStringfilter(Stringmessage){
if(message==null)
return(null);
charcontent[]=newchar[message.length()];
message.getChars(0,message.length(),content,0);
StringBufferresult=newStringBuffer(content.length+50);
for(inti=0;i<content.length;i++){
switch(content[i]){
case'<':
result.append("&lt;");
break;
case'>':
result.append("&gt;");
break;
case'&':
result.append("&amp;");
break;
case'"':
result.append("&quot;");
break;
default:
result.append(content[i]);
}
}
return(result.toString());
}
}

❹ java怎樣過濾危險字元,該怎麼解決

就WEB應用來說,所謂危險的字元一般就是兩種
一個是SQL注入,一個是HTML語法注回入
SQL注入主流的框架都可答以搞定,JDBC永遠都使用preparedstatement就可以防止所有的sql注入,關鍵是用戶輸入都要通過佔位符往裡放,就自動的替換掉了特殊字元了。hibernate等orm框架都會搞定這個問題

HTML語法注入是指用戶輸入的html代碼回顯出來,這樣如果不轉義就可以破壞頁面的結構或者注入腳本。所以現在的網站都不允許用戶直接輸入html代碼了,現在都是一些UBB標簽來完成一些效果。HTML主要最好的解決辦法是在回顯的時候進行轉義,所有的MVC框架或者展示層框架都有HTML轉義的支持,包括struts,spring,volicty等,注意觀察他們用於顯示的標簽

❺ java過濾特殊字元的問題

"+"在URL中會被當作空格處理。
必須使用URLEncoder將其變成URL編碼。
或者使用 javascript 的 encodeURIComponent(url) 函數對URL進行編碼轉換。

❻ java防止SQL注入的幾個途徑

閱讀全文

與Java過濾URL特殊字元防注入相關的資料

熱點內容
脫色劑印染污水怎麼處理 瀏覽:734
純水用什麼鹽做水泥 瀏覽:384
力斯凈水器性價比怎麼樣 瀏覽:212
樹脂粘土bjd娃娃 瀏覽:591
光化樹脂牙變黃 瀏覽:290
半透膜表面積越大 瀏覽:274
污水入滲量 瀏覽:196
污水處理系統什麼意思 瀏覽:921
718gts空氣濾芯怎麼拆 瀏覽:680
廢水處理的是怎麼進行的英語 瀏覽:24
煤灰渣場廢水揮發酚 瀏覽:179
創星外置過濾桶CF800價格 瀏覽:348
小區太多提升泵太吵 瀏覽:224
挖機大臂提升感測器 瀏覽:820
透析蒸餾水可以喝嗎 瀏覽:891
微濾超濾納濾反滲透直徑大小 瀏覽:934
油煙凈化器片尺寸多少 瀏覽:762
對印染廢水的漂色回用 瀏覽:983
凈水器濾芯怎麼分1號到5號 瀏覽:515
保安過濾器濾芯為什麼會穿透 瀏覽:570