中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

防止xss攻擊的有效方法
來源:易賢網(wǎng) 閱讀:2926 次 日期:2016-08-03 14:34:50
溫馨提示:易賢網(wǎng)小編為您整理了“防止xss攻擊的有效方法”,方便廣大網(wǎng)友查閱!

這篇文章主要為大家介紹了防止xss攻擊的有效方法,何為xss攻擊,我們可以采取什么樣的措施去御防xss攻擊,感興趣的小伙伴們可以參考一下

最近,有個項目突然接到總部的安全漏洞報告,查看后知道是XSS攻擊。

問題描述:

在頁面上有個隱藏域:

XML/HTML Code

<input type = "hidden" id = "action" value = "${action}"/>    

當前頁面提交到Controller時,未對action屬性做任何處理,直接又回傳到頁面上

如果此時action被用戶惡意修改為:***"<script>alert(1);</script>"***

此時當頁面刷新時將執(zhí)行alert(1),雖然錯誤不嚴重,但是任何安全隱患都應受到重視。

解決思路:

該問題是由于對用戶輸入數(shù)據(jù)(隱藏域)未做任何處理,導致非法數(shù)據(jù)被執(zhí)行,那么解決該問題的核心思路就是對用戶數(shù)據(jù)做嚴格處理,對任何頁面?zhèn)鬟f的數(shù)據(jù)都不應過分信任,處理方法如下:

1.在頁面上對action參數(shù)做轉(zhuǎn)義處理,${action?html}(前端技術采用freemarker),但是此種方法只能對單個屬性有效,如果此時項目處于維護期且有大量此種問題,修復的難度較大且不便于統(tǒng)一維護

2.在服務端對用戶數(shù)據(jù)做轉(zhuǎn)義處理,此時需要創(chuàng)建一個filter,對request進行二次封裝,核心代碼如下:

Java Code

import javax.servlet.http.HttpServletRequest;   

import javax.servlet.http.HttpServletRequestWrapper;   

import org.apache.commons.lang3.StringEscapeUtils;   

public class XssRequestWrapper extends HttpServletRequestWrapper {   

    public XssRequestWrapper(HttpServletRequest request) {   

        super(request);   

    }   

    public String getParameter(String name) {   

        String value = super.getParameter(name);   

        if (value == null) {   

            return null;   

        }   

        return StringEscapeUtils.escapeHtml4(value);   

    }   

    public String[] getParameterValues(String name) {   

        String[] values = super.getParameterValues(name);   

        if (values == null) {   

            return null;   

        }   

        String[] newValues = new String[values.length];   

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

            newValues[i] = StringEscapeUtils.escapeHtml4(values[i]);   

        }   

        return newValues;   

    }   

}   

XssRequestWrapper是對request進行的二次封裝,最核心的作用是對request中的參數(shù)進行轉(zhuǎn)義處理(需要用到commons-lang3.jar)

定義filter,核心的代碼如下:

Java Code

@Override  

public void doFilter(ServletRequest request,   

                     ServletResponse response,   

                     FilterChain chain) throws IOException, ServletException {   

    HttpServletRequest req = (HttpServletRequest) request;   

    chain.doFilter(new <span style="color: #000000;">XssRequestWrapper</span>(req), response);   

}  

在web.xml中配置指定請求進行過濾,可以有效防止xss攻擊,希望本文所述對大家熟練掌握防止xss攻擊的方法有所幫助。

更多信息請查看技術文章
易賢網(wǎng)手機網(wǎng)站地址:防止xss攻擊的有效方法

2026國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
主站蜘蛛池模板: 定边县| 青岛市| 荃湾区| 新河县| 延寿县| 荣昌县| 天全县| 仙居县| 锡林郭勒盟| 灵川县| 东安县| 昌邑市| 上高县| 乌鲁木齐县| 阳城县| 成都市| 乡城县| 三都| 东莞市| 肥乡县| 乳山市| 城步| 句容市| 湖南省| 西和县| 廊坊市| 大连市| 莲花县| 温州市| 五家渠市| 大方县| 梅河口市| 永宁县| 涟源市| 周宁县| 南宫市| 普兰店市| 荔波县| 凤翔县| 新郑市| 巩留县|