91偷拍精品一区二区三区_欧美亚洲免费在线_日本不卡高清视频_中文字幕无码一区二区视频_日韩毛片无码一区二区三区,将夜 猫腻 小说,欢乐颂第二季,如何发布网络小说

?
    開發(fā)技術(shù) / Technology

    Tomcat的SessionID引起的Session Fixation和Session Hijacking問題

    日期:2015年2月26日  作者:zhjw  來源:互聯(lián)網(wǎng)    點(diǎn)擊:1008

    今天說說SessionID帶來的漏洞攻擊問題。首先,什么是Session Fixation攻擊和Session Hijacking攻擊問題? 說來話長(zhǎng),非常具體的解釋查看我這個(gè)pdf文件:《Session Fixation Vulnerability in Web-based Applications》。為什么會(huì)注意到這個(gè)問題?其實(shí)原來也知道session劫持的問題,但沒有注意,這幾天用IBM Ration AppScan掃描了web漏洞,發(fā)現(xiàn)一個(gè)嚴(yán)重的Session Fixation漏洞:"會(huì)話標(biāo)識(shí)未更新針對(duì)這個(gè)問題的解決方案: 始終生成新的會(huì)話,供用戶成功認(rèn)證時(shí)登錄。防止用戶操縱會(huì)話標(biāo)識(shí)。issue a new JSESSIONID cookie after login。請(qǐng)勿接受用戶瀏覽器登錄時(shí)所提供的會(huì)話標(biāo)識(shí)。" 原來,用戶訪問我們的登錄頁(yè)面,Tomcat就會(huì)生成一個(gè)SessionID,加密后放到用戶瀏覽器Cookie中。當(dāng)用戶登錄后,這個(gè)SessionID并沒有改變。更加糟糕的是,每次在同一臺(tái)機(jī)器上,都使用同一個(gè)SessionID。這就造成了嚴(yán)重的Session Fixation和Session Hijacking漏洞。其實(shí),如果Tomcat啟用了SSL,Tomcat的默認(rèn)行為是:當(dāng)用戶通過登錄后,生成一個(gè)新的SessionID。如果沒有配置SSL,手動(dòng)讓Tomcat生成新的SessionID的方法是:

    復(fù)制代碼
    /*
     * Authenticate, first invalidate the previous Tomcat sessionID immediately
     * This step is only required when NO SSL of Tomcat is applied!
     
    */
    if (session!=null && !session.isNew()) {
        session.invalidate();
    }
    /*
     * Create the sessionID 
     * Actually if deploy this web site in Tomcat by SSL, by default a new SessionID will be generated 
     * 
     * 
    */ 
    HttpSession session = getRequest().getSession(true);
    復(fù)制代碼

    在后臺(tái)登陸邏輯中,登陸前生成新的SessionID。

    另外可以采用下面的CheckList:

     

    • 查看sessionID生成策略,確保不可被猜測(cè)(Tomcat沒問題)
    • 查看sessionID保存策略,確保不通過URL進(jìn)行傳遞(通過URL傳遞的SessionID禁不起安全測(cè)試)
    • 每次登錄更換sessionID(已解決,事實(shí)上Tomcat在SSL下默認(rèn)也是這樣)
    • Session Cookie 設(shè)置HttpOnly(Tomcat沒問題)
    • Session Cookie 設(shè)置,特別是用戶IP, UserAgent...等更改強(qiáng)制session過期需要重新登錄(備用,防止Session保持攻擊)

    Session Fixation攻擊

    舉一個(gè)形象的例子,假設(shè)A有一輛汽車,A把汽車賣給了B,但是A沒有把鑰匙都交給B,自己還留了一把。這時(shí)候如果B沒有換鎖的話,A還是可以打開B的車的。在網(wǎng)站上,具體的攻擊過程是:攻擊者X首先獲取一個(gè)未經(jīng)認(rèn)證的SessionID,然后把這個(gè)SessionID交給用戶Y去認(rèn)證,Y完成認(rèn)證后,服務(wù)器并未更新此SessionID的值(注意是未改變SessionID,而不是Session),所以X可以直接憑借此SessionID登錄進(jìn)Y的賬戶。X怎么拿到SessionID的?常用的方法有Xss攻擊(如果設(shè)置HttpOnly此方法無效)、網(wǎng)絡(luò)Sniff、本地木馬竊取、網(wǎng)絡(luò)嗅探等。解決Session Fixation攻擊的辦法就是在登錄完成后,重新生成不可以猜測(cè)的SessionID。

    主站蜘蛛池模板: 奉新县| 凤山县| 邮箱| 清镇市| 许昌市| 原阳县| 乌审旗| 紫阳县| 邹平县| 柳州市| 犍为县| 镇巴县| 皮山县| 花莲县| 崇义县| 都昌县| 盱眙县| 江永县| 稷山县| 昌都县| 敦化市| 库尔勒市| 南澳县| 安庆市| 雷山县| 苏尼特左旗| 荥阳市| 天峨县| 衡山县| 广东省| 壶关县| 沙河市| 宾川县| 泸溪县| 镇宁| 河东区| 定南县| 营口市| 营口市| 永仁县| 米林县|