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

    ?    2026年6月    ?
    1234567
    891011121314
    15161718192021
    22232425262728
    2930

搜索

作者列表

站點信息

  • 文章總數(shù):13334
  • 頁面總數(shù):3
  • 分類總數(shù):42
  • 標簽總數(shù):57
  • 評論總數(shù):6045
  • 瀏覽總數(shù):6791175

網(wǎng)站W(wǎng)EB常見10大安全漏洞及解決方案

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


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


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


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

/**
 * 校驗參數(shù),判斷是否包含sql關(guān)鍵字表達式
 * 此方法會有誤傷
 */ 
  
    private static boolean sqlValidate(String str) {  
        str = str.toLowerCase();//統(tǒng)一轉(zhuǎn)為小寫  
        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 關(guān)鍵詞 有空格分隔
        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/ ,本該截圖的,后來處理了就給忘了~~~~,反正從注冊內(nèi)容來看,可以確定兩點,通過注冊機注冊,想通過注冊注入攻擊。


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


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


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


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


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


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


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


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


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


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


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


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

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


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


解決方案:根據(jù)官方發(fā)布的方案進行版本升級;根據(jù)公開的漏洞執(zhí)行方式編寫攔截器。


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

@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. 嚴禁在生產(chǎn)環(huán)境下使用缺省密碼   安全等級★★


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


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


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


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


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


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


這個問題網(wǎng)上提到的都是很嚴重,但現(xiàn)在并沒有發(fā)現(xiàn)多少案例,或許處理方案比較簡單吧。


解決方案:在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攻擊處理方案一般來說也是通過攔截器過濾請求參數(shù),都是常規(guī)的處理方案。

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方法,將參數(shù)名和參數(shù)值都做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方法,將參數(shù)名和參數(shù)值都做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的靜態(tài)方法 
    * 
    * @return 
    */  
    public static HttpServletRequest getOrgRequest(HttpServletRequest req) {  
        if (req instanceof XssHttpServletRequestWrapper) {  
            return ((XssHttpServletRequestWrapper) req).getOrgRequest();  
        }  
  
        return req;  
    }  
}

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


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


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


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


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


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


Nginx配置:


add_header X-Frame-Options SAMEORIGIN


Apache配置:


Header always append X-Frame-Options SAMEORIGIN



發(fā)表評論:

◎歡迎參與討論,請在這里發(fā)表您的看法、交流您的觀點。

久久久国产一区_国产综合久久久久_欧美亚洲丝袜_成人综合国产精品
精品国产一区二区三区久久久久久 | 国产一区高清视频| 国产av熟女一区二区三区| 日韩av一区二区三区在线| 久久久久久久久久久久久久一区| 日韩精品一区二区三区电影| 久久深夜福利免费观看| 欧美v在线观看| 久久99青青精品免费观看| 99视频在线免费观看| 日产精品高清视频免费| 日韩中文娱乐网| 国产一区二区在线观看免费播放 | 国产欧美va欧美va香蕉在线| 亚洲一区久久久| 久久草视频在线看| 欧美亚洲在线观看| 麻豆国产精品va在线观看不卡| 国产精品一区二区免费在线观看 | 欧美影视一区二区| 国产精品成av人在线视午夜片| 国产一区二区三区色淫影院 | 国产成人无码av在线播放dvd| 日韩视频在线免费| 日本精品一区二区三区不卡无字幕 | 欧美二区三区| 精品国产免费av| 久久久欧美精品| 国模一区二区三区私拍视频| 亚洲一区二区在线| 精品国产一区二区三区四区在线观看 | 国产精品久久久久久av福利软件 | 精品国产区在线| 国产成人精品免高潮在线观看| 激情内射人妻1区2区3区| 伊人网在线免费| 色老头一区二区三区在线观看| 国产日韩欧美视频在线| 日日碰狠狠躁久久躁婷婷| 国产精品美女主播| 91久久精品美女| 欧美大香线蕉线伊人久久国产精品| 一区二区三区观看| 国产成人精品在线视频| chinese少妇国语对白| 欧美日韩日本网| 亚洲v欧美v另类v综合v日韩v| 国产精品久久久久久网站| 国产精品91一区| 国产色婷婷国产综合在线理论片a| 日本一本草久p| 中文字幕日韩精品无码内射| 色视频www在线播放国产成人| 国产玖玖精品视频| 欧美日产一区二区三区在线观看| 亚洲影视中文字幕| 久久成人亚洲精品| 北条麻妃久久精品| 国产成人艳妇aa视频在线| 国产美女精品免费电影| 欧美亚洲黄色片| 水蜜桃亚洲精品| 在线精品日韩| 久久av资源网站| 国产精品无码免费专区午夜| 91精品视频播放| 国产剧情久久久久久| 精品视频一区在线| 奇米四色中文综合久久| 午夜欧美性电影| 综合久久国产| 免费99精品国产自在在线| 国产精品无av码在线观看| 久久久久久av无码免费网站下载| 国产精品亚洲一区| 黄色小视频大全| 欧美亚洲国产日本| 青青青在线视频播放| 日本一区二区三区免费看 | 欧美精品国产精品日韩精品| 国产精品大全| 久久久精品一区二区| 久久久久久久久一区| 国产成人综合一区二区三区| 91精品国产91久久久久青草| 成人一级生活片| 国产精品一区二区久久国产| 国产欧美日韩专区发布| 国产视频一视频二| 国产原创精品| 国产日韩欧美另类| 国产玖玖精品视频| 成人久久精品视频| 国产欧美日韩免费| 国产乱子伦精品无码专区| 国产日本欧美在线| 国产偷人视频免费| 国产女教师bbwbbwbbw| 国产日韩欧美视频| 国产精品自拍偷拍| 超碰97网站| 91久久夜色精品国产网站| 99在线视频免费观看| 97人人模人人爽人人少妇| www婷婷av久久久影片| 99久久久精品免费观看国产| 91精品美女在线| 69av在线播放| 久久精品国产第一区二区三区最新章节| 国产激情美女久久久久久吹潮| 国产高清www| 久久精品二区| 国产精品入口免费视| 久久综合久久美利坚合众国| 欧美极品欧美精品欧美视频| 亚洲精品久久久久久一区二区| 日本国产一区二区三区| 欧美国产日韩在线播放| 国产伦理久久久| 久久久影视精品| 色噜噜久久综合伊人一本| 久久伊人精品一区二区三区| 亚洲综合在线播放| 日韩欧美第二区在线观看| 国内视频一区二区| 成人做爽爽免费视频| 91av在线播放| 精品国产一区二区三区在线观看 | 日韩精品一区二区三区不卡| 韩国国内大量揄拍精品视频| 国产日产亚洲精品| 国产二级片在线观看| 久久精品国产亚洲一区二区| 国产精品高潮呻吟视频| 亚洲综合日韩中文字幕v在线| 日本精品免费视频| 国产在线观看精品| 久久天天东北熟女毛茸茸| 国产精品手机视频| 亚洲自拍欧美色图| 日韩日韩日韩日韩日韩| 国产中文欧美精品| 国产精品99免视看9| 国产精品欧美日韩久久| 一区二区国产日产| 欧美在线视频免费| 成人av免费看| 日韩中文字幕在线| 中文字幕一区二区三区在线乱码| 青青在线视频免费| 99久久久精品视频| 另类色图亚洲色图| 日本精品视频在线播放| 国产免费一区二区三区在线能观看| 久久久久福利视频| 国产精品久久婷婷六月丁香| 午夜伦理精品一区| 国产一级片91| 精品国产一区二区三区久久狼5月 精品国产一区二区三区久久久狼 精品国产一区二区三区久久久 | 国产免费黄视频| 九色自拍视频在线观看| 色综合天天综合网国产成人网| 日韩精彩视频| 97国产精品免费视频| 国产精品久久久久久久9999| 三级网在线观看| 成人3d动漫一区二区三区| 国产精品入口免费| 日本黄网站色大片免费观看| 成人国产精品一区| 国产精品无码电影在线观看| 色香蕉在线观看| 国产精品一区在线免费观看| 久久手机免费视频| 日本在线成人一区二区| 国产精品午夜视频| 国产精品果冻传媒潘| 日韩女优人人人人射在线视频| 成人免费视频久久| 久久中文久久字幕| 男人的天堂成人| 色偷偷噜噜噜亚洲男人| 亚洲激情一区二区三区| 国产欧美在线一区| 国产精品高潮呻吟视频| 欧洲中文字幕国产精品| 国产成人一二三区| 性日韩欧美在线视频| 91免费精品视频| 中文字幕精品一区日韩| 国产午夜福利在线播放 | 国内精品久久久久影院优| 久久久久久久久久伊人| 性欧美在线看片a免费观看| 成人免费aaa| 欧美激情一二三| 国产伦精品一区二区| 精品国产一区二区三区麻豆免费观看完整版| 欧美国产综合视频| 日韩中文字幕国产精品|