真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

JAVA與Android世界級(jí)序列化危機(jī)與應(yīng)對(duì)方案-創(chuàng)新互聯(lián)

JAVA序列化危機(jī)

Apache Commons Collection 中的反序列化漏洞在 2016 年撼動(dòng)了整個(gè)Java 生態(tài)系統(tǒng),也影響到了 70 余個(gè)其他的 Java 庫(kù),甚至還讓 PayPal 的服務(wù)器遭受影響。
OWASP組織將“不安全的反序列化”列為2017年10項(xiàng)最嚴(yán)重的Web 應(yīng)用程序安全風(fēng)險(xiǎn)榜的第8位。

北票ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)的ssl證書(shū)銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書(shū)合作)期待與您的合作!
Android 反序列化漏洞 CVE-2014-7911

Android <5.0系統(tǒng)中,可以利用ObjectInputStream未校驗(yàn)是否可反序列化的漏洞,惡意傳入不可序列化對(duì)象將產(chǎn)生類型混淆,成員變量被當(dāng)成指針向system_server進(jìn)程注入代碼,由于system_server擁有system權(quán)限,從而使得注入的代碼以system權(quán)限執(zhí)行。

序列化代理模式

由于使用序列化在整個(gè)行業(yè)的巨大風(fēng)險(xiǎn),在java取消或使用新的替代品之前,最好對(duì)序列化行為進(jìn)行代理,可以阻止偽字節(jié)流***和內(nèi)部域盜用***,避免造成重大損失。

java的隱藏方法

隱藏方法介紹:
readObject()和writeObject(),可以自定義序列化傳輸過(guò)程,例如在前后添加自定義內(nèi)容,或者直接修改返回結(jié)果;可以在readObject添加保護(hù)性代碼,校驗(yàn)是否真實(shí)結(jié)果。

writeReplace():實(shí)際序列化的對(duì)象將是作為writeReplace方法返回值的對(duì)象,而且序列化過(guò)程的依據(jù)是實(shí)際被序列化對(duì)象的序列化實(shí)現(xiàn)。

readResolve():在類中有多個(gè)實(shí)例時(shí),可以通過(guò)該方法去決定反序列化后的結(jié)果。

在Serializable接口定義中并無(wú)這些方法,實(shí)際是ObjectOutputStream使用了反射來(lái)尋找是否聲明了這些隱藏方法再進(jìn)行調(diào)用。

使用隱藏方法實(shí)現(xiàn)序列化代理模式

參照Effective Java序列化代理模式如下:

public class Interval implements Serializable {
    private final Date start;
    private final Date end;

    public Interval(Date start, Date end) {
        this.start = new Date(start.getTime());
        this.end = new Date(end.getTime());
        if (this.start.compareTo(this.end) > 0)
            throw new IllegalArgumentException(start + " after " + end);
    }


//提供序列化方法
    private Object writeReplace() {
    return new SerializationProxy(this);
    }

//禁止反序列化外圍類
private void readObject(ObjectInputStream ois) throws InvalidObjectException {
    throw new InvalidObjectException("Proxy required!");
}

    public Date getStart() {return new Date(start.getTime());}
    public Date getEnd() {return new Date(end.getTime());}

    @Override
    public String toString() {
        return "Interval{" + "start=" + start + ", end=" + end + '}';
    }

    private static class SerializationProxy implements Serializable {
        private static final long serivalVersionUID = 213214124141L;
        private final Date start;
        private final Date end;

        SerializationProxy(Interval interval) {
            this.start = interval.start;
            this.end = interval.end;
        }
//轉(zhuǎn)回外圍類
private Object readResolve() {
    return new Interval(start, end);
}
    }
}
注意應(yīng)用場(chǎng)景和使用的缺陷

1 擴(kuò)展性差,需要同步修改實(shí)例對(duì)象和代理對(duì)象。
2 如果直接使用代理類,無(wú)法調(diào)用對(duì)象方法,需要轉(zhuǎn)換成實(shí)際類使用。
3 安全但開(kāi)銷更大。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


網(wǎng)站欄目:JAVA與Android世界級(jí)序列化危機(jī)與應(yīng)對(duì)方案-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)鏈接:http://weahome.cn/article/dohigc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部