反射跨站,來自用戶的數據直接輸出到客戶端。apache
修復建議json
使用跨站修復函數處理輸出到客戶端的數據字符串。瀏覽器
如:函數
public void XSS(HttpServletRequest request, HttpServletResponse response){編碼
String text = request.getParameter("text");spa
System.out.println(text);接口
}字符串
修復爲:get
public void XSS_Fix1(HttpServletRequest request, HttpServletResponse response){class
String text = request.getParameter("text");
text = Sutil.responseFilter(text);
System.out.println(text);
}
public class Sutil{
public static String responseFilter(String text){
//Struts1.x
return org.apache.struts.util.ResponseUtils.filter(text);
}
}
存儲型跨站,來自存儲設備的數據直接輸出到客戶端。
使用跨站修復函數處理輸出到客戶端的數據字符串。
如:
public void XSS(HttpServletRequest request, HttpServletResponse response){
String text = request.getParameter("text");
System.out.println(text);
}
修復爲:
public void XSS_Fix1(HttpServletRequest request, HttpServletResponse response){
String text = request.getParameter("text");
text = Sutil.responseFilter(text);
System.out.println(text);
}
public class Sutil{
public static String responseFilter(String text){
//Struts1.x
return org.apache.struts.util.ResponseUtils.filter(text);
}
}
UTF7跨站,因爲<meta>標籤沒有指定明確的charset,致使瀏覽器將編碼以utf-7解析,或未過濾UTF7字符,從而造成XSS。
一、給<meta>等標籤指定編碼字符集,好比 json 的必定要設置爲 Content-Type: "json"。
二、嚴格過濾用戶輸入的數據,禁止輸出的前幾個字符是:+/v
CGI反射跨站,來自用戶的數據直接輸出到控制檯或其餘CGI接口。
使用跨站修復函數處理輸出到客戶端的數據字符串。
如:
public void XSS(HttpServletRequest request, HttpServletResponse response){
String text = request.getParameter("text");
System.out.println(text);
}
修復爲:
public void XSS_Fix1(HttpServletRequest request, HttpServletResponse response){
String text = request.getParameter("text");
text = Sutil.responseFilter(text);
System.out.println(text);
}
public class Sutil{
public static String responseFilter(String text){
//Struts1.x
return org.apache.struts.util.ResponseUtils.filter(text);
}
}
GWT DOM反射跨站,來自用戶的數據直接輸出到控制檯或其餘DOM接口。
使用跨站修復函數處理輸出到客戶端的數據字符串。
如:
public void XSS(HttpServletRequest request, HttpServletResponse response){
String text = request.getParameter("text");
System.out.println(text);
}
修復爲:
public void XSS_Fix1(HttpServletRequest request, HttpServletResponse response){
String text = request.getParameter("text");
text = Sutil.responseFilter(text);
System.out.println(text);
}
public class Sutil{
public static String responseFilter(String text){
//Struts1.x
return org.apache.struts.util.ResponseUtils.filter(text);
}
}
GWT反射跨站,來自用戶的數據直接輸出到控制檯或其餘GWT接口。
使用跨站修復函數處理輸出到客戶端的數據字符串。
如:
public void XSS(HttpServletRequest request, HttpServletResponse response){
String text = request.getParameter("text");
System.out.println(text);
}
修復爲:
public void XSS_Fix1(HttpServletRequest request, HttpServletResponse response){
String text = request.getParameter("text");
text = Sutil.responseFilter(text);
System.out.println(text);
}
public class Sutil{
public static String responseFilter(String text){
//Struts1.x
return org.apache.struts.util.ResponseUtils.filter(text);
} }