Java編碼安全漏洞之:跨站

Reflected_XSS_All_Clients

反射跨站,來自用戶的數據直接輸出到客戶端。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);

}

}

Stored_XSS

存儲型跨站,來自存儲設備的數據直接輸出到客戶端。

修復建議

使用跨站修復函數處理輸出到客戶端的數據字符串。

修復示例

如:

       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_XSS

UTF7跨站,因爲<meta>標籤沒有指定明確的charset,致使瀏覽器將編碼以utf-7解析,或未過濾UTF7字符,從而造成XSS。

修復建議

一、給<meta>等標籤指定編碼字符集,好比 json 的必定要設置爲 Content-Type: "json"。

二、嚴格過濾用戶輸入的數據,禁止輸出的前幾個字符是:+/v

CGI_Reflected_XSS_All_Clients

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_XSS

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_Reflected_XSS

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);

} }

相關文章
相關標籤/搜索