• <output id="aynwq"><form id="aynwq"><code id="aynwq"></code></form></output>

    <mark id="aynwq"><option id="aynwq"></option></mark>
  • <mark id="aynwq"><option id="aynwq"></option></mark><label id="aynwq"><dl id="aynwq"></dl></label>
  • 學(xué)習(xí)啦>學(xué)習(xí)電腦>電腦安全>網(wǎng)絡(luò)安全知識>

    如何有效防止XSS攻擊

    時間: 權(quán)威724 分享

      XSS(跨站腳本)漏洞是一種Web應(yīng)用程序安全漏洞,常被黑客用來對Web用戶發(fā)起攻擊。下面學(xué)習(xí)啦小編整理了一些資料為大家講解如何有效防止XSS攻擊的方法,希望對你有用!

      什么是XSS攻擊?

      XSS即為跨站腳本攻擊(Cross Site Scripting),為不和層疊樣式表(Cascading Style Sheets, CSS)的縮寫混淆,故將跨站腳本攻擊縮寫為XSS。惡意攻擊者往Web頁面里插入惡意Script代碼,當(dāng)用戶瀏覽該頁之時,嵌入其中Web里面的Script代碼會被執(zhí)行,從而達到惡意攻擊用戶的特殊目的。

      如何安全有效的防止XSS攻擊呢?

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

      問題描述:

      在頁面上有個隱藏域:

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

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

      如果此時action被用戶惡意修改為:***" "***

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

      解決思路:

      該問題是由于對用戶輸入數(shù)據(jù)(隱藏域)未做任何處理,導(dǎo)致非法數(shù)據(jù)被執(zhí)行,那么解決該問題的核心思路就是對用戶數(shù)據(jù)做嚴格處理,對任何頁面?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)容到剪貼板

      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 復(fù)制內(nèi)容到剪貼板

      @Override

      public void doFilter(ServletRequest request,

      ServletResponse response,

      FilterChain chain) throws IOException, ServletException {

      HttpServletRequest req = (HttpServletRequest) request;

      chain.doFilter(new XssRequestWrapper(req), response);

      }

    如何有效防止XSS攻擊

    什么是XSS攻擊? XSS即為跨站腳本攻擊(Cross Site Scripting),為不和層疊樣式表(Cascading Style Sheets, CSS)的縮寫混淆,故將跨站腳本攻擊縮寫為XSS。惡意攻擊者往Web頁面里插入惡意Script代碼,當(dāng)用戶瀏覽該頁之時,嵌入其中Web里面
    推薦度:
    點擊下載文檔文檔為doc格式
    511693 主站蜘蛛池模板: 91九色蝌蚪porny| 国产大学生粉嫩无套流白浆| 国产a级特黄的片子视频免费| 亚洲精品nv久久久久久久久久| 久久久无码精品亚洲日韩蜜桃| 91精品国产福利在线观看| 草莓视频丝瓜视频-丝瓜视18岁苹果免费网 | 亚洲综合激情另类小说区| 久久久久亚洲AV片无码| 56prom在线精品国产| 精品国自产拍天天拍2021| 日韩色视频在线观看| 日韩欧美国产高清| 国产青草视频在线观看| 制服丝袜中文字幕在线| 久久夜色精品国产噜噜| 久久久久无码精品国产| 男女拍拍拍免费视频网站| 特级毛片www| 成人免费视频软件网站| 国产高清在线观看| 免费黄色a视频| 久久91精品国产一区二区| 久久亚洲精品专区蓝色区| 欧美黑人两根巨大挤入| 娇小xxxxx性开放| 台湾一级淫片高清视频| 久久夜色精品国产欧美乱| 亚洲综合丁香婷婷六月香| 欧美日韩电影在线观看| 天堂√在线官网| 免费的a级毛片| 中国china体内谢o精| 蜜桃97爱成人| 日本免费电影一区| 国产成人无码AⅤ片在线观看 | 好吊色青青青国产在线观看| 欧美地区一二三区| 国产精品盗摄一区二区在线| 亚洲欧美日韩精品久久| 99re热久久资源最新获取|