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

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

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

yupang 常見漏洞 752

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://m.790079.com

同類推薦

發表評論

訪客

◎歡迎參與討論,請在這里發表您的看法和觀點。
久久久国产一区_国产综合久久久久_欧美亚洲丝袜_成人综合国产精品
亚洲精品一区二区三区av| 波霸ol色综合久久| 国产精品综合久久久久久| 8050国产精品久久久久久| 国产精品国模在线| 亚洲淫片在线视频| 国产在线精品二区| 深夜福利国产精品| 痴汉一区二区三区| 国产精品自拍片| 国产精品毛片a∨一区二区三区|国| 视频一区二区综合| 国产精品永久免费观看| 国产精品成人av性教育| 欧美久久久久久一卡四| 国产极品在线视频| 亚洲巨乳在线观看| 成人av播放| 最新中文字幕久久| 国产伦精品一区二区三区视频黑人 | 日本黄网站色大片免费观看| www.中文字幕在线| 久久综合久久八八| 国内精品二区| 国产精品久久久久久亚洲调教| 热久久美女精品天天吊色| 久久精品国产美女| 日本久久久久亚洲中字幕| 97国产一区二区精品久久呦| 欧美激情a∨在线视频播放| 国模吧无码一区二区三区| 国产精品久久久一区| 国产精品电影久久久久电影网| 激情综合网俺也去| 国产精品美女久久久久av福利| 黄色激情在线视频| 久久精品视频在线播放| 欧美视频免费看欧美视频| 爽爽爽爽爽爽爽成人免费观看| 日韩精品久久久| 精品国产区一区二区三区在线观看| 色噜噜狠狠一区二区三区| 国产精品 欧美在线| 亚洲精品日韩成人| 久久一区免费| 人禽交欧美网站免费| 精品国产一区二区三区久久久 | 国产精品毛片一区视频| 蜜桃av噜噜一区二区三| 九九久久综合网站| 99精品国产一区二区| 午夜久久资源| 久久精品日产第一区二区三区精品版 | 粉嫩av一区二区三区免费观看| 一区二区三区国产福利| 91精品国产综合久久男男| 欧美一区1区三区3区公司| 岛国视频一区免费观看| 久久av喷吹av高潮av| 欧美中文字幕视频在线观看| 国产精品欧美激情在线播放 | 91国在线高清视频| 日韩视频在线播放| 国产精品三区四区| 国产一区二区自拍| 久久久久国产精品一区| 久久久一本二本三本| 欧洲成人一区二区| 久久97精品久久久久久久不卡 | 99免费在线观看视频| 日韩福利在线| 国产精品电影久久久久电影网| 成人欧美一区二区三区黑人| 欧美激情亚洲激情| 久久视频免费在线| 国内精品视频在线| 午夜免费久久久久| 国产精品美女呻吟| 99在线观看| 欧美激情亚洲天堂| 亚洲一区二区三区久久| 久久精品国产亚洲精品| 国产欧美日韩一区| 午夜啪啪福利视频| 欧美另类99xxxxx| 国产成人av网| 国产免费黄色一级片| 欧美在线一二三区| 丁香六月激情网| 欧美成人精品一区二区三区| 久99久视频| 国产三级精品在线不卡| 日本在线高清视频一区| 国产精品久久久91| 阿v天堂2017| 国产中文日韩欧美| 午夜啪啪福利视频| 久久天天躁狠狠躁夜夜躁| 国产日韩欧美电影在线观看| 亚洲色成人www永久在线观看| 99久久激情视频| 日本久久高清视频| 九九热视频这里只有精品| 久久天天躁狠狠躁夜夜av| www国产黄色| 欧美激情www| 亚洲综合精品一区二区| 久久久久久久久爱| 国产一区二区三区黄| 丁香六月激情网| 精品国产一区二区三区日日嗨| 久久免费视频网| 国产在线资源一区| 日本一区二区精品视频| 欧美激情亚洲激情| 国产精品免费区二区三区观看| 91九色国产视频| 国产精选久久久久久| 欧美日韩精品久久久免费观看| 中文字幕99| 日韩一区二区三区国产| 91精品国产乱码久久久久久蜜臀| 国产一区福利视频| 青青在线免费视频| 中文字幕一区二区中文字幕| 国产精品三级在线| 色偷偷偷亚洲综合网另类| youjizz.com亚洲| 国产最新精品视频| 奇米888一区二区三区| 亚洲精品日韩精品| 亚洲一区不卡在线| 国产精品国产三级国产专区51| 久久久久久久久一区二区| 91久久综合亚洲鲁鲁五月天| 99精品视频在线看| 国产美女精品久久久| 欧美韩国日本精品一区二区三区| 亚洲国产日韩欧美| 精品国产乱码久久久久久蜜柚 | 午夜精品一区二区三区四区| 久久6免费高清热精品| 国产精品女人网站| 久久精彩免费视频| 国产freexxxx性播放麻豆| 国产精品亚洲综合天堂夜夜| 高清一区二区三区日本久| 欧美激情视频一区二区三区| 欧美中文字幕在线播放| 日韩国产在线一区| 日本免费成人网| 日韩精品欧美一区二区三区| 亚洲一区二区三区乱码aⅴ| 中文字幕久久综合| 欧美激情aaaa| 永久免费看av| 在线观看欧美一区| 一区二区三区不卡在线| 亚洲一区二区三区久久| 在线丝袜欧美日韩制服| 久久国产精品久久国产精品| 欧美成人中文字幕在线| 精品国产成人av在线免| 国产aⅴ精品一区二区三区黄 | www污在线观看| www.久久草| 99久久自偷自偷国产精品不卡| 高清视频一区二区三区| 成人av一级片| 国产精品777| 久久国产精品久久精品国产| 日韩综合中文字幕| zzjj国产精品一区二区| 国产精品无码电影在线观看| 国产精品女主播| 国产精品免费一区二区| 亚洲在线www| 日韩中文字幕免费在线| 日本a级片在线观看| 欧美一区二区在线视频观看| 欧美日韩一区二区三区免费| 国产伦理一区二区三区| 99热在线播放| 国产成人精品久久二区二区91| 日韩在线视频线视频免费网站| 久久视频在线观看免费| 久久久久网址| 中文字幕乱码一区二区三区| 性一交一乱一伧国产女士spa| 欧美综合在线观看视频| 黄色a级在线观看| 国产精品一区二区三区免费| 久久久久久久有限公司| 国产精品视频免费在线观看| 国产精品免费一区二区三区都可以| 精品久久久久久中文字幕动漫| 亚洲国产欧美一区二区三区不卡| 视频一区二区在线| 黄色网络在线观看| 日韩亚洲在线视频|