日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

JSP使用過濾器防止Xss漏洞

瀏覽:533日期:2022-06-07 14:50:39

在用java進行web業務開發的時候,對于頁面上接收到的參數,除了極少數是步可預知的內容外,大量的參數名和參數值都是不會出現觸發Xss漏洞的字符。而通常為了避免Xss漏洞,都是開發人員各自在頁面輸出和數據入庫等地方加上各種各樣的encode方法來避免Xss問題。而由于開發人員的水平不一,加上在編寫代碼的過程中安全意識的差異,可能會粗心漏掉對用戶輸入內容進行encode處理。針對這種大量參數是不可能出現引起Xss和SQL注入漏洞的業務場景下,因此可以使用一個適用大多數業務場景的通用處理方法,犧牲少量用戶體驗,來避免Xss漏洞和SQL注入。

那就是利用Servlet的過濾器機制,編寫定制的XssFilter,將request請求代理,覆蓋getParameter和getHeader方法將參數名和參數值里的指定半角字符,強制替換成全角字符。使得在業務層的處理時不用擔心會有異常輸入內容。

XssFilter.java

package filter;
 
import java.io.IOException;
 
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;
 
public class XssFilter implements Filter {
 
 public void init(FilterConfig config) throws ServletException {
 }
 
 public void doFilter(ServletRequest request, ServletResponse response,
 FilterChain chain) throws IOException, ServletException 
 {
 XssHttpServletRequestWrapper xssRequest = new XssHttpServletRequestWrapper(
 (HttpServletRequest) request);
 chain.doFilter(xssRequest, response);
}
 
 public void destroy() {
 }
}

XssHttpServletRequestWrapper.java

package filter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
 
public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper {
 HttpServletRequest orgRequest = null;
 
 public XssHttpServletRequestWrapper(HttpServletRequest request) {
 super(request);
 orgRequest = request;
 }
 
 /**
 * 覆蓋getParameter方法,將參數名和參數值都做xss過濾。<br/>
 * 如果需要獲得原始的值,則通過super.getParameterValues(name)來獲取<br/>
 * getParameterNames,getParameterValues和getParameterMap也可能需要覆蓋
 */
 @Override
 public String getParameter(String name) {
 String value = super.getParameter(xssEncode(name));
 if (value != null) {
 value = xssEncode(value);
 }
 return value;
}
 
/**
 * 覆蓋getHeader方法,將參數名和參數值都做xss過濾。<br/>
 * 如果需要獲得原始的值,則通過super.getHeaders(name)來獲取<br/>
 * getHeaderNames 也可能需要覆蓋
*/
 @Override
 public String getHeader(String name) {
 
 String value = super.getHeader(xssEncode(name));
 if (value != null) {
 value = xssEncode(value);
 }
 return value;
}
 
/**
 * 將容易引起xss漏洞的半角字符直接替換成全角字符
 *
 * @param s
 * @return
*/
private static String xssEncode(String s) {
if (s == null || s.isEmpty()) {
return s;
}
 StringBuilder sb = new StringBuilder(s.length() + 16);
 for (int i = 0; i < s.length(); i++) {
 char c = s.charAt(i);
 switch (c) {
 case ">":
 sb.append(">");//全角大于號
 break;
 case "<":
 sb.append("<");//全角小于號
 break;
 case "\"":
 sb.append("‘");//全角單引號
 break;
 case "\"":
 sb.append("“");//全角雙引號
 break;
 case "&":
 sb.append("&");//全角
 break;
 case "\\":
 sb.append("\");//全角斜線
 break;
 case "#":
 sb.append("#");//全角井號
 break;
 default:
 sb.append(c);
 break;
 }
}
 return sb.toString();
}
 
/**
* 獲取最原始的request
*
* @return
*/
public HttpServletRequest getOrgRequest() {
return orgRequest;
}
/**
* 獲取最原始的request的靜態方法
*
* @return
*/
 public static HttpServletRequest getOrgRequest(HttpServletRequest req) {
 if(req instanceof XssHttpServletRequestWrapper){
 return ((XssHttpServletRequestWrapper)req).getOrgRequest();
}
 
return req;
}
} 

在web.xml中添加

<filter>
<filter-name>xssFilter</filter-name>
 <filter-class>filter.XssFilter</filter-class>
 </filter>
 <filter-mapping>
 <filter-name>xssFilter</filter-name>
 <url-pattern>/*</url-pattern>
</filter-mapping>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持。

標簽: JSP
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久精品国产久精国产爱| 婷婷综合福利| 精品99久久| 国产午夜久久av| 石原莉奈一区二区三区在线观看 | 视频一区视频二区在线观看| 欧美 日韩 国产一区二区在线视频 | 黄色亚洲在线| 亚洲欧美日本日韩| 在线观看精品| 香蕉久久精品| 乱人伦精品视频在线观看| 亚洲男女自偷自拍| 日产欧产美韩系列久久99| 欧美中文高清| 日韩成人亚洲| 欧美 日韩 国产一区二区在线视频| av中文字幕在线观看第一页| 韩国三级一区| 久久www成人_看片免费不卡| 亚洲精品伊人| 国产一区二区三区四区大秀| 99久久九九| 久久久久亚洲精品中文字幕| 精品美女视频| 日韩精品一二三区| 你懂的国产精品永久在线| 亚洲乱码视频| 国产精品magnet| 亚洲国产综合在线看不卡| 日韩午夜精品| sm久久捆绑调教精品一区| 久久久五月天| 日韩激情一二三区| 亚洲成人免费| 国产一区二区三区亚洲| 久久午夜视频| 国产精品7m凸凹视频分类| 精品中文在线| 日本aⅴ亚洲精品中文乱码| 福利一区二区| 国产精品亚洲二区| 青青国产精品| 免费久久99精品国产自在现线| 深夜福利视频一区二区| 国产精品任我爽爆在线播放 | 亚洲视频播放| 日韩国产欧美| 欧美午夜三级| 日韩午夜视频在线| 喷白浆一区二区| 伊人久久成人| 亚洲大片在线| 日本精品不卡| 日韩高清欧美| 日韩欧美二区| 特黄毛片在线观看| 中国字幕a在线看韩国电影| 日韩精品欧美成人高清一区二区| 99视频精品| 欧美日韩国产免费观看| 久久国产精品成人免费观看的软件| 欧美sss在线视频| 亚洲午夜一级| 国产视频一区三区| 亚洲精品国产精品粉嫩| 日韩中文字幕一区二区高清99| 少妇精品久久久一区二区| 91精品国产一区二区在线观看| 欧美亚洲自偷自偷| 精品国产精品久久一区免费式| 美日韩一区二区三区| 美女性感视频久久| 国产乱码精品一区二区亚洲| 国产乱子精品一区二区在线观看| 精品视频91| 国产一区清纯| 国产精品试看| 97成人超碰| 成人在线视频中文字幕| 欧美日韩在线观看视频小说| 男人操女人的视频在线观看欧美| 国产精品蜜月aⅴ在线| 成人美女视频| 亚洲一区日韩| 国产探花在线精品| 欧美日韩在线观看首页| 另类亚洲自拍| 日本欧美韩国一区三区| 国产黄大片在线观看| 麻豆9191精品国产| 欧美激情在线精品一区二区三区| 97精品97| 日韩综合小视频| 欧美日韩尤物久久| 国产亚洲高清在线观看| 成人av动漫在线观看| 久久69成人| 亚洲综合图色| 桃色av一区二区| 欧美日韩1区| 美女被久久久| 久久天堂成人| 婷婷精品在线| 午夜久久一区| 日本欧美不卡| 福利一区二区三区视频在线观看| 亚洲精品综合| 野花国产精品入口| 亚洲电影有码| 久久精品国产免费| 国产区精品区| 日韩不卡在线观看日韩不卡视频| 亚洲精品99| 日韩精品一区二区三区免费观看| 欧美精品1区| 欧美日韩一区二区三区不卡视频 | 久久激情中文| 国产精品成人a在线观看| 日韩和欧美一区二区三区| 欧美日韩激情| 欧美午夜精品一区二区三区电影| 精品国产午夜| 国产精品久久国产愉拍| 日韩黄色av| 欧美一级二级视频| 91欧美极品| 国产日韩欧美中文在线| 91麻豆精品激情在线观看最新| 婷婷成人av| 国产精品一在线观看| 国产亚洲人成a在线v网站| 国产免费av一区二区三区| 欧美激情久久久久久久久久久| 久久精品av麻豆的观看方式| 国产欧美亚洲一区| 精品三级久久久| 国产精品yjizz视频网| 国产精品v日韩精品v欧美精品网站| 久久精品72免费观看| www成人在线视频| 视频一区二区欧美| 欧美亚洲专区| 日韩精品中文字幕第1页| 欧美高清不卡| 日韩三级久久| 首页国产精品| 国产亚洲网站| 88久久精品| 婷婷成人基地| 久久99免费视频| 玖玖玖国产精品| 国产一区国产二区国产三区| 群体交乱之放荡娇妻一区二区| 免费视频久久| 欧美91在线|欧美| 自由日本语亚洲人高潮| 日韩区欧美区| 日韩av在线中文字幕| 亚洲色诱最新| sm捆绑调教国产免费网站在线观看 | 成人片免费看| 青青草伊人久久| 久久av综合| 美女国产精品| 日韩精品久久久久久久电影99爱| 日韩精品久久理论片| 日本综合字幕| 国产经典一区| 中文字幕一区二区三区四区久久| 成人在线免费观看网站| 亚洲网址在线观看| 电影91久久久| 国产丝袜一区| 亚洲精品美女| 国产韩日影视精品| 亚洲黄色网址| 国产精久久久| 国产毛片久久| 久久香蕉国产| 国产在线|日韩| 国产精品入口久久| 日韩精品一区二区三区免费视频| 中文无码日韩欧| 亚洲色诱最新| 91精品99| 午夜在线精品偷拍| 欧美日韩免费观看视频| 日韩不卡一区| av免费不卡国产观看| 美女久久精品| 国产精品1区| 久热精品在线| 欧美丝袜一区| 亚洲欧美日韩国产| 欧美福利专区| 首页亚洲欧美制服丝腿| 久久99伊人| 亚洲精选av| 国产精品亚洲一区二区在线观看|