久久久国产一区_国产综合久久久久_欧美亚洲丝袜_成人综合国产精品

合作QQ:25496334 TG@heimao_wiki
當前位置:首頁 >> 網站漏洞 >> 常見漏洞 >> 網站WEB常見10大安全漏洞及解決方案

網站WEB常見10大安全漏洞及解決方案

yupang 常見漏洞 773

1. SQL注入 安全等級★★★★★


幾乎每一個網站后臺開發人員都聽到的一個詞,并且都很敏感,但是不知道是什么原因造成的很多程序員卻在實際開發過程中經常忽視這個問題。前段時間部門一位新同事,據說是5年工作經驗,在對他的代碼做評審時,我們發現所有的DAO層實現都是直接拼接SQL和參數,總監多次提醒他這個問題,但他也沒有發現,直到總監說出SQL注入這個詞。


實際上這個漏洞很嚴重,一旦被注入成功,后果不堪設想,但這類問題處理起來還是蠻簡單的,下面以JAVA為例舉例說明


方案一: 編寫攔截器過濾請求(不推薦),此方案建議只在對維護中項目或者代碼結構比較亂的情況下使用,底層不容易修改或者不方便修改。此方案效率低,效果也不佳。

/**
 * 校驗參數,判斷是否包含sql關鍵字表達式
 * 此方法會有誤傷
 */ 
  
    private static boolean sqlValidate(String str) {  
        str = str.toLowerCase();//統一轉為小寫  
        String badSqlStr = "'|exec|execute|insert|select|delete|update|count|drop|chr|mid|master|truncate|char|declare|sitename|net user|xp_cmdshell|create|drop|"
                             +"table|from|grant|use|group_concat|column_name|1=1|=|"   
                             +"information_schema.columns|table_schema|union|where|*|"  
                          +"chr|mid|master|truncate|char|declare|or|;|,|like|//|/|%|#|-|--|+|";
        String badXssStr = "frame|iframe|script|javascript|=|<|>";
        
        //sql 關鍵詞 有空格分隔
        String[] badSqlStrs = badSqlStr.split("\\|");  
        for (int i = 0; i < badSqlStrs.length; i++) {  
            if (str.indexOf(" "+badSqlStrs[i]) >= 0 || str.indexOf(badSqlStrs[i]+" ") >= 0) {  
                return true;  
            }  
        }
 
        } 
        
        return false;  
}

2. 驗證碼必須后臺校驗  安全等級★★★★


前段時間一客戶說后臺管理看到了一堆這樣用戶,/etc/init.d  /1=1  ./././ …. Windows/ ,本該截圖的,后來處理了就給忘了~~~~,反正從注冊內容來看,可以確定兩點,通過注冊機注冊,想通過注冊注入攻擊。


通過機器注冊:直接跳過了前端的表單校驗,而恰巧這個項目在開發的時候,驗證碼只在前端做了校驗,提交到后臺沒有做再一次的校驗,也就是這個漏洞導致了這堆垃圾注冊。


解決方案:前臺提交數據到后臺后做進一步校驗,如驗證碼校驗、數據格式校驗、驗重校驗。


回想我也曾經用過這個漏洞…老東家海航集團2014年的時候,OA系統添加了登錄需要手機短信驗證,當時系統更新后第一個版本就是僅做了前臺校驗,這個漏洞無意中被我發現了,因為每天都要登錄OA,每次都要短信實在太麻煩了,我就嘗試模擬了個表單請求,重寫原登錄系統表單提交的腳本,在所有的驗證我都直接返回true。很激動的是,一次就成功了,后來也分享給我們同事了,大家都很開心。但隨后不久,系統就升級了,后臺驗證,你們懂得。當然對當時的信息部同事來說,我就是一個壞人……


3. 防止表單重復提交   安全等級★★★


防止表單重復提交其實網上有很多解決方案,并且現在主流的前端框架都可以在頁面上做按鈕控制,不過做為一個程序員,你們懂得,這并沒有什么卵用。個人還是建議采用實際的后臺驗證法處理。從網上爬文,看到的靠譜的解決方案如下。


解決方案:token驗證,請求頁面時生成token并放在session中,提交表單到后臺驗證token,業務邏輯處理完之后,清除token。如果表單提交了一次,token就沒了,再次提交就無法通過了。


方案分析:此方法和驗證碼基本上一致,如果驗證碼在每次表單提交后都清除一次,也能達到這樣的效果。


其他建議:重要的表單頁面提交后重定向,取消表單的autocomplete。


4. 文件上傳格式校驗      安全等級★★★★


黑客攻擊網站還有一個常見的方式就是通過文件上傳漏洞,比如網站上傳圖片的功能沒有嚴格校驗后綴名。黑客可以通過此功能上傳一些腳本文件,上傳成功后,通過請求這些腳本文件運行腳本中的功能達到攻擊的目的。


那么如果驗證了上傳文件的后綴名就可以嗎?實際上并不是,舉例說我們知道頁面引入script標簽時src寫啥都行,比如http://www.baidu.com/123.jpg,也是可以的,攻擊者只需要把一個script文件后綴名改為jpg即可通過后綴驗證,后面一路暢通。所以這就提到了驗證文件的真實格式。如何驗證,網上一大堆…


解決方案:設置php文件、jsp文件不可直接被訪問(不知道php可以不,jsp放在WEB-INF即可),這樣攻擊者上傳此類文件也無法執行;通過文件頭信息嚴格驗證文件格式,從上傳功能開始防范。

5. 熟悉使用框架或數據庫版本情況   安全等級★★


實際開發中,我們都使用一些開源框架,但這些框架也不是百分百完善的,比如webwork,struts2就經常爆出一些漏洞,這個需要開發者自行關注。


解決方案:根據官方發布的方案進行版本升級;根據公開的漏洞執行方式編寫攔截器。


Struts2 s2-016 漏洞處理實例(項目結構不允許版本升級),攔截器,實際上官方的版本也是升級后過濾了一些參數。

@Override
       public void doFilter(ServletRequest request, ServletResponse response,
                     FilterChain filterChain) throws IOException, ServletException {
              HttpServletRequest req = (HttpServletRequest) request;
           HttpServletResponse res = (HttpServletResponse)response;
           //禁止頁面被frame
           res.addHeader("x-frame-options","SAMEORIGIN"); 
              Map parameterMap = req.getParameterMap();
        for (Iterator iterator = parameterMap.keySet().iterator(); iterator.hasNext();) {
            String key = (String) iterator.next();
            if ((key.contains("redirect:")) || (key.contains("redirectAction:")) || (key.contains("action:"))) {
             res.sendError(HttpServletResponse.SC_FORBIDDEN, "forbidden");
             System.out.println("----------非法操作-----------");
                return;
            }
        }
        filterChain.doFilter(request, response);
       }


6. 嚴禁在生產環境下使用缺省密碼   安全等級★★


很多時候一些小網站,新人練手的網站(往往價格很便宜),在開發的過程中都要求很快,往往這些網站問題還是蠻多的。后臺驗證碼處于關閉狀態、賬號密碼常用admin/admin組合,看似方便了操作,實際是危險重重。甚至有時候,數據庫鏈接密碼都是root/空,這個危害大家都知道。由于沒有驗證碼,用戶密碼又使用的缺省的,黑客爆破的概率異常的高,一旦獲取了后臺管理權限,剩下的就交給你了。


解決方案:通過配置測試模式和生產模式控制驗證碼驗證,管理員賬戶必須使用非缺省加密處理,必要時使用物理驗證。


7. 服務器端口盡可能少開      安全等級★★★


六月份一個客戶的服務器被掛馬了,服務器一直是他們自行維護,只在項目更新時給我們開放遠程。無意中發現服務器防火墻竟然是關閉狀態~~~~我的天吶,是不是所有端口都處于開放狀態吶~~~~你們以為這就是驚喜,驚喜還在后面呢,客戶提供的MySQL數據庫用戶名明碼是root root,個人認為這個才是驚喜。root/root和root/空是一樣的效果。分析了一下,防火墻關閉了,3306也就開了,黑客發現3306開著,root/root能連接,通過windows漏洞提升root用戶為系統用戶,bingo,竟然可以登錄這臺服務器欸,簡直棒棒噠。


解決方案:防護墻打開,僅開放必要的端口如80,13389,設置遠程登錄IP白名單。再次強調不要用缺省賬戶。


8. Options方法過濾        安全等級★


這個問題網上提到的都是很嚴重,但現在并沒有發現多少案例,或許處理方案比較簡單吧。


解決方案:在web.xml添加配置

<!-- 過濾不安全的請求方法 -->  
    <security-constraint>     
    <web-resource-collection>     
       <url-pattern>/*</url-pattern>     
       <http-method>PUT</http-method>     
    <http-method>DELETE</http-method>     
    <http-method>HEAD</http-method>     
    <http-method>OPTIONS</http-method>     
    <http-method>TRACE</http-method>
    </web-resource-collection>     
       <auth-constraint>     
       </auth-constraint>     
    </security-constraint>     
    <login-config>     
        <auth-method>BASIC</auth-method>     
    </login-config>


9. XSS攻擊、CSRF攻擊    安全等級★

XSSS攻擊處理方案一般來說也是通過攔截器過濾請求參數,都是常規的處理方案。

package com.interceptor;
 
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
 
/**
 * <p>
 *  類說明
 * </p>
 * @author shy
 * @date 2016-4-21 下午03:34:26
 * @vesion $Revision$ $Date$ 
 */
 
public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper {
       HttpServletRequest orgRequest = null;  
         
    public XssHttpServletRequestWrapper(HttpServletRequest request) {  
        super(request);  
        orgRequest = request;  
    }  
  
    /** 
    * 覆蓋getParameter方法,將參數名和參數值都做xss過濾。<br/> 
    * 如果需要獲得原始的值,則通過super.getParameterValues(name)來獲取<br/> 
    * getParameterNames,getParameterValues和getParameterMap也可能需要覆蓋 
    */  
    @Override  
    public String getParameter(String name) {  
        String value = super.getParameter(xssEncode(name));  
        if (value != null) {  
            value = xssEncode(value);  
        }  
        return value;  
    }  
  
    /** 
    * 覆蓋getHeader方法,將參數名和參數值都做xss過濾。<br/> 
    * 如果需要獲得原始的值,則通過super.getHeaders(name)來獲取<br/> 
    * getHeaderNames 也可能需要覆蓋 
    */  
    @Override  
    public String getHeader(String name) {  
  
        String value = super.getHeader(xssEncode(name));  
        if (value != null) {  
            value = xssEncode(value);  
        }  
        return value;  
    }  
  
    /** 
    * 將容易引起xss漏洞的半角字符直接替換成全角字符 
    * 
    * @param s 
    * @return 
    */  
    private static String xssEncode(String s) {  
        if (s == null || "".equals(s)) {  
            return s;  
        }  
        StringBuilder sb = new StringBuilder(s.length() + 16);  
        for (int i = 0; i < s.length(); i++) {  
            char c = s.charAt(i);  
            switch (c) {  
            case '>':  
                sb.append('>');//全角大于號  
                break;  
            case '<':  
                sb.append('<');//全角小于號  
                break;  
            case '\'':  
                sb.append('‘');//全角單引號  
                break;  
            case '\"':  
                sb.append('“');//全角雙引號  
                break;  
            case '&':  
                sb.append('&');//全角  
                break;  
            case '\\':  
                sb.append('\');//全角斜線  
                break;  
            case '#':  
                sb.append('#');//全角井號  
                break;  
            default:  
                sb.append(c);  
                break;  
            }  
        }  
        return sb.toString();  
    }  
  
    
    /** 
    * 獲取最原始的request 
    * 
    * @return 
    */  
    public HttpServletRequest getOrgRequest() {  
        return orgRequest;  
    }  
  
    /** 
    * 獲取最原始的request的靜態方法 
    * 
    * @return 
    */  
    public static HttpServletRequest getOrgRequest(HttpServletRequest req) {  
        if (req instanceof XssHttpServletRequestWrapper) {  
            return ((XssHttpServletRequestWrapper) req).getOrgRequest();  
        }  
  
        return req;  
    }  
}

CSRF攻擊(這個還在學習中)


解決方案:從網上爬文看到的基本上是一致的,校驗Referer,添加請求token驗證,個人覺得此漏洞在大型系統中比較重視,小網站就呵呵了。


10. frame引入控制      安全等級★


這個不知道為什么會被列入網站安全問題中,一個客戶網站找了第三方安全檢測公司檢測網站有這個漏洞,所以就不得不處理。網上抄來的。


Java代碼(攔截器中使用):


response.addHeader("x-frame-options","SAMEORIGIN");


Nginx配置:


add_header X-Frame-Options SAMEORIGIN


Apache配置:


Header always append X-Frame-Options SAMEORIGIN



協助本站SEO優化一下,謝謝!
關鍵詞不能為空

免責聲明

資料匯總于網絡,如有侵權 聯系站長刪除 http://www.790079.com

同類推薦

發表評論

訪客

◎歡迎參與討論,請在這里發表您的看法和觀點。
久久久国产一区_国产综合久久久久_欧美亚洲丝袜_成人综合国产精品
国产精品99久久免费黑人人妻 | 久久久国产精品亚洲一区| 成人免费淫片aa视频免费| 免费看成人午夜电影| 欧美 日韩 国产精品| 欧美性受xxxx黑人猛交| 欧美一级黑人aaaaaaa做受| 人妻无码一区二区三区四区| 日韩av第一页| 日本亚洲欧洲精品| 欧洲成人免费视频| 国内一区二区在线视频观看| 欧美有码在线观看视频| 黄色小视频大全| 国产一区二区三区播放| 国产精品直播网红| 91成人综合网| 久久国产精品免费一区| 久久精品国产一区二区三区| 国产精品国产亚洲伊人久久| 久久99亚洲精品| 亚洲va韩国va欧美va精四季| 日本国产一区二区三区| 欧美亚洲黄色片| 国产欧美精品va在线观看| 91高清免费在线观看| 色婷婷综合成人av| 国产精品欧美日韩久久| 色综合久久88色综合天天看泰| 亚洲欧美日韩国产成人综合一二三区| 性欧美亚洲xxxx乳在线观看| 欧美在线播放cccc| 国产美女高潮久久白浆| 久久精品ww人人做人人爽| 国产精品免费一区二区三区观看| 美女精品视频一区| 熟女少妇精品一区二区| 精品日本一区二区| 不卡影院一区二区| 日韩在线精品一区| 欧美激情视频网址| 日本不卡一区二区三区四区| 免费国产成人看片在线| 91久久精品日日躁夜夜躁国产| 日韩中文字幕国产| 在线观看欧美一区| 欧美又大又粗又长| 99国产视频在线| 久久黄色av网站| 亚洲一二区在线| 欧美亚洲第一页| 91九色视频在线| 国产精品高清在线| 日韩欧美亚洲精品| julia一区二区中文久久94| 国产精品网站免费| 欧美一区二区三区……| 国产自产女人91一区在线观看| 久久一区免费| 中文字幕成人一区| 女女同性女同一区二区三区91 | 成人精品视频在线播放| 久久久精品美女| 日韩av电影中文字幕| 国产精品有限公司| 国产精品免费视频xxxx| 日韩欧美电影一区二区| 91成人福利在线| 一区二区视频在线免费| 国产在线视频欧美一区二区三区| 久久久久久久一区二区| 亚洲欧洲一区二区在线观看| 蜜桃免费区二区三区| 久久久久久久久久久久久久一区| 亚洲砖区区免费| 国产欧美va欧美va香蕉在线| 国产精品国内视频| 精品婷婷色一区二区三区蜜桃| 久久久91精品国产| 欧美日韩免费观看一区| 色狠狠av一区二区三区香蕉蜜桃| 国产一区二区精品在线| 国产高清av在线播放| 精品国产一区二区三区久久久久久| 久久91精品国产| 国模吧一区二区| 久久久久久久久久久久久久久久av | 北条麻妃一区二区三区中文字幕| 婷婷五月色综合| 91传媒视频免费| 亚洲 自拍 另类小说综合图区| 成人免费在线小视频| 中文字幕欧美日韩一区二区| 国产免费一区| 久久久久久国产精品三级玉女聊斋| 国产免费视频传媒| 一区二区三区国| 91久久精品www人人做人人爽| 一区国产精品| 国产精品99久久久久久久久| 日本一区免费| 久久精品国产精品亚洲| 国产欧美精品在线播放| 九色91国产| 欧美一区二区色| 久久riav| 一本色道久久99精品综合| 97免费在线视频| 欧美一区二区.| 丝袜亚洲欧美日韩综合| 极品尤物一区二区三区| 国产精品涩涩涩视频网站| 国语对白做受xxxxx在线中国| 久久久久久久久久久一区| 久久这里只有精品23| 欧美在线亚洲一区| 国产精品久久久久久久电影| 国产视频一区二区三区四区| 亚洲综合中文字幕在线| 国产福利精品在线| 男女视频网站在线观看| 国产99在线播放| 91九色在线视频| 青青草成人免费在线视频| 国产精品美女久久久免费| 国产伦精品一区二区三区照片91| 亚洲va男人天堂| 国产成人三级视频| 精品无人区一区二区三区竹菊| 中文字幕日韩精品久久| 久久国产成人精品国产成人亚洲| 国产真实乱子伦| 欧美一区二区三区四区在线 | 久久久中精品2020中文| 欧美中文在线观看国产| 久色乳综合思思在线视频| 91精品视频免费看| 日韩女优在线播放| 欧美精品在线免费| 久久精品成人一区二区三区蜜臀| 国产在线一区二区三区| 日韩avxxx| 中国人体摄影一区二区三区| 久久久久久久999| 国产日本欧美在线观看| 人人妻人人澡人人爽欧美一区| 宅男一区二区三区| 国产精品久久久久一区二区 | 91精品中文在线| 精品视频无码一区二区三区| 无码日韩人妻精品久久蜜桃| 久久福利视频导航| 久久成人免费观看| 97久久精品人搡人人玩| 麻豆精品视频| 欧美一二三视频| 日本精品一区二区三区高清 久久 日本精品一区二区三区视频 | 久久露脸国产精品| 国产伦精品一区二区三区免费视频| 人人爽久久涩噜噜噜网站| 亚洲影院污污.| 精品国产乱码久久久久久郑州公司| 久久久久资源| 久久久神马电影| av日韩中文字幕| 妓院一钑片免看黄大片| 国产精选在线观看91| 日韩女优中文字幕| 国产精品久久久久久久久久三级| 91久久久久久久久久| 国产精品永久免费| 国模吧一区二区三区| 欧美日韩精品综合| 日韩精品欧美专区| 日本不卡一区| 日本高清久久一区二区三区| 午夜精品久久久久久久无码| 欧美激情第1页| 色综合久久悠悠| 久久99亚洲热视| 国产精品热视频| 日韩中文字幕亚洲| 日韩在线欧美在线国产在线| 久久精品在线免费视频| 国产精品av网站| 国产成人福利视频| 久久久久久久久久久免费| 久久国产亚洲精品无码| 久久精品日韩精品| 久久久久免费视频| 日韩视频永久免费观看| 国产成人精品综合久久久| 久久深夜福利免费观看| 国产精品国产三级国产专区53| 国产精品加勒比| 国产精品久久久久久久久久三级| 国产精品国产亚洲伊人久久| 精品久久久久久一区| 欧美激情伊人电影| 一区二区在线观看网站|