欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

防止xss攻擊的有效方法

  發(fā)布時間:2016-01-19 15:11:42   作者:佚名   我要評論
這篇文章主要為大家介紹了防止xss攻擊的有效方法,何為xss攻擊,我們可以采取什么樣的措施去御防xss攻擊,感興趣的小伙伴們可以參考一下

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

問題描述:

在頁面上有個隱藏域:

XML/HTML Code復(fù)制內(nèi)容到剪貼板
  1. <input type = "hidden" id = "action" value = "${action}"/>    

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

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

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

解決思路:

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

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

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

Java Code復(fù)制內(nèi)容到剪貼板
  1. import javax.servlet.http.HttpServletRequest;   
  2. import javax.servlet.http.HttpServletRequestWrapper;   
  3.     
  4. import org.apache.commons.lang3.StringEscapeUtils;   
  5.     
  6. public class XssRequestWrapper extends HttpServletRequestWrapper {   
  7.     
  8.     public XssRequestWrapper(HttpServletRequest request) {   
  9.         super(request);   
  10.     }   
  11.     
  12.     public String getParameter(String name) {   
  13.         String value = super.getParameter(name);   
  14.         if (value == null) {   
  15.             return null;   
  16.         }   
  17.         return StringEscapeUtils.escapeHtml4(value);   
  18.     }   
  19.     
  20.     public String[] getParameterValues(String name) {   
  21.         String[] values = super.getParameterValues(name);   
  22.         if (values == null) {   
  23.             return null;   
  24.         }   
  25.         String[] newValues = new String[values.length];   
  26.         for (int i = 0; i < values.length; i++) {   
  27.             newValues[i] = StringEscapeUtils.escapeHtml4(values[i]);   
  28.         }   
  29.         return newValues;   
  30.     }   
  31. }   

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

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

Java Code復(fù)制內(nèi)容到剪貼板
  1. @Override  
  2. public void doFilter(ServletRequest request,   
  3.                      ServletResponse response,   
  4.                      FilterChain chain) throws IOException, ServletException {   
  5.     HttpServletRequest req = (HttpServletRequest) request;   
  6.     chain.doFilter(new <span style="color: #000000;">XssRequestWrapper</span>(req), response);   
  7. }  

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

相關(guān)文章

  • XSS攻擊匯總 做網(wǎng)站安全的朋友需要注意下

    貌似關(guān)于xss的資料t00ls比較少,看見好東西Copy過來,不知道有木有童鞋需要Mark的
    2012-10-16
  • 網(wǎng)站受到XSS跨站點腳本攻擊的分析及解決方法

    本文詳細(xì)講了如何避免XSS跨站點腳本攻擊
    2012-06-07
  • XSS攻擊常識及常用腳本

    XSS 攻擊常用腳本,大家可以了解xss攻擊的一些知識做好網(wǎng)站安全防范。
    2020-04-13
  • XSS攻擊防御技術(shù)

    1 背景知識 1.1 什么是XSS攻擊 XSS攻擊:跨站腳本攻擊(Cross Site Scripting),為不和層疊樣式表(Cascading Style Sheets, CSS)的縮寫混淆。故將跨站腳本攻擊
    2008-10-08
  • 關(guān)于XSS漏洞另一個攻擊趨勢

    XSS漏洞一般是基于WEB程序的輸入輸出問題,但最近80SEC開始發(fā)現(xiàn)了一系列以IE為內(nèi)核的第三方瀏覽器的漏洞,在評估其中的XSS漏洞,我們發(fā)現(xiàn)了基于瀏覽器軟件自身設(shè)計造成的XS
    2008-10-08
  • XSS Phishing - 新式跨站腳本攻擊方式(圖)

    最近跨站腳本漏洞好像比較火,國內(nèi)的一些比較出名的WEB程序都陸續(xù)暴出了跨站腳本漏洞,但是一提到跨站腳本漏洞的攻擊方式大家都啞火了,因為在常規(guī)的概念中這種漏洞最多是
    2008-10-08
  • 通殺動易2005的 XSS 攻擊

    動易2005里面,留言的時候存在一個XSS。 攻擊方法如下 : 首先在網(wǎng)站注冊一個普通會員,然后去GUESTBOOK留言,在插入圖片的時候地址寫上(建議在原代碼里面把圖片的高度
    2008-10-08
  • Cross Iframe Trick:the Old New Thing(圖)

    我思考了很久才把這里面的錯綜復(fù)雜的關(guān)系整清楚,我想很多人看我下面的paper會睡著,或者干脆“一目百行”的跳過去,但如果你真的想弄懂,請調(diào)試我的 每一個poc,會非常有
    2008-10-08
  • Session Fixation 攻防實戰(zhàn)(圖)

    最近筆者在網(wǎng)上看到一個新文章《JSESSIONID Regeneration in Struts 2》,講的是一段代碼,在STRUTS 2框架中,防御Session Fixation攻擊。筆者比較老土,看不懂英文,還好
    2008-10-08

最新評論