国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

記錄一次敏感信息脫敏的過程

duan199226 / 2748人閱讀

摘要:背景在公司入職,老大讓我去做數(shù)據(jù)脫敏,通過調(diào)用運維組的數(shù)據(jù)脫敏接口,保證用戶的敏感的信息不落地。公司項目主要使用和版本。

背景:

在A公司入職,老大讓我去做數(shù)據(jù)脫敏,通過調(diào)用運維組的數(shù)據(jù)脫敏接口,保證用戶的敏感的信息不落地。公司項目主要使用laravel5.1 和 YII1.1 版本。

具體方案:

敏感信息字段的調(diào)用存在與代碼中的各個角落,如果手動對每一個地方的代碼都去擼一邊,所需要耗費的時間是非常巨大的,為了減少工作量,我們決定對model下手,考慮到并不是所有的model都存在脫敏信息,多帶帶定義一個trait來處理存在敏感信息似乎是一個相對比較穩(wěn)妥的方式。

我們對于脫敏的主要思想是對__get()和__set()兩個魔術(shù)方法的改造,希望在最大程度的減少對使用類似User::model()->username的影響,以Yii1.1框架為例,還要改造findByAttributes()等方法避免大量findByXXX()方法的失效

public function __get($name)
{
    //getPlainKeys() 定義了model當(dāng)中的需要的脫敏信息字段
    if(in_array($name, $this->getPlainKeys())) {
        $enc_name = Mask::getMaskName($name);//encrypt_username
        if(empty($this->$enc_name)) {
            return parent::($name); //兼容代碼,用戶數(shù)據(jù)未更新時調(diào)用
        }
        $plain_value = Mask::encrypt(Mask::getMaskType($name), $this->$name);//返回明文
        return $plain_value;
    }else {
        return parent::($name);//不要使用$this->$name 防止多次調(diào)用__get()
    }
}

重寫完__get()的方法后,在定義一個getPlain()的方法,傳入返回明文的字段,
通過User::model()->getPlain(["username"])->username的方法返回需要的明文就好了,在這之前,需要在需要脫敏的model里面加好訂好的脫敏信息的字段$mask_key["username","mobile"]

   /**
    * 往數(shù)組里塞值
    **/
    public function getPlain($keys)
    {
        foreach($keys as $key){
            if(in_array($key, $this->getMaskName())) {//比較mask_key
                array_merge($this->getPlainKeys(), $keys);         }
        }
        return $this;  
    }

當(dāng)然了,如果直接通過User::model()->username的地方很多,又需要明文的地方很多,就在model里面直接添加一個$plain_keys的字段去默認(rèn)返回明文就好了,同時去新增一個能夠?qū)?plain_keys里面的值移除的方法就好了,例如User::model()->removePlainKeys("username")->username返回打碼明文就好了.

public function __set($name, $value)
{
    if(in_array($name, $this->getMaskKeys())){
        ... //產(chǎn)生字段名稱encrypt_username, plain_username
        if(empty($value)) { //防止某些情況下可能發(fā)生的將敏感信息寫回空值的情況,enccrypt_username 存在將回返回舊的歷史數(shù)據(jù)
            $this->setAttributes($name, "");
            $this->setAttributes($encrypt_username, "");
            $this->setAttributes($plain_username, "");
        }
            $data = Mask::doencrypt(Mask::getMaskType($name),$value)
            $this->setAttributes($name, $data["plain_text"]);
            $this->setAttributes($encrypt_username, $data["hash"]);
            $this->setAttributes($plain_username, $value;
    }else {
        reutrn parent::__set($name, $vk)
    }
}

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/28220.html

相關(guān)文章

  • 余額寶11.11:基于日志數(shù)據(jù)分析高效運維

    摘要:接下來我們以余額寶為例,重點剖析天弘基金在日志數(shù)據(jù)分析領(lǐng)域是如何突破的此前,天弘基金一直使用開源的日志方案,研發(fā)和運維人員通過對日志數(shù)據(jù)進(jìn)行處理,使用日志文件進(jìn)行查詢檢索。 雙十一剛剛結(jié)束,其實最緊張的不是商鋪理貨,也不是網(wǎng)友緊盯大促商品準(zhǔn)備秒殺,而是網(wǎng)購幕后的運維人員,他們最擔(dān)心:什么網(wǎng)絡(luò)中斷、應(yīng)用卡頓、響應(yīng)速度慢,服務(wù)器宕機(jī)……雙十一作為電商 IT 部門的頭等大事,大促前,運維人員就需要...

    wenshi11019 評論0 收藏0
  • 深入解讀:獲Forrester大數(shù)據(jù)能力高評價阿里云DataWorks思路與能力

    摘要:阿里云成為唯一入選的中國產(chǎn)品。在阿里云的眾多產(chǎn)品中,和共同構(gòu)成了服務(wù)能力的核心。作為大數(shù)據(jù)能力賦能的重要手段,出現(xiàn)在了等阿里云專有云解決方案中。利用云計算技術(shù),互聯(lián)網(wǎng)公司得以快速的將自身的大數(shù)據(jù)處理能力對外賦能。 1.前言 本文基于Now Tech: Cloud Data Warehouse, Q1 2018 (Published: by Noel Yuhanna, March 13,...

    ashe 評論0 收藏0
  • 深入解讀:獲Forrester大數(shù)據(jù)能力高評價阿里云DataWorks思路與能力

    摘要:阿里云成為唯一入選的中國產(chǎn)品。在阿里云的眾多產(chǎn)品中,和共同構(gòu)成了服務(wù)能力的核心。作為大數(shù)據(jù)能力賦能的重要手段,出現(xiàn)在了等阿里云專有云解決方案中。利用云計算技術(shù),互聯(lián)網(wǎng)公司得以快速的將自身的大數(shù)據(jù)處理能力對外賦能。 1.前言 本文基于Now Tech: Cloud Data Warehouse, Q1 2018 (Published: by Noel Yuhanna, March 13,...

    caoym 評論0 收藏0
  • 深入解讀:獲Forrester大數(shù)據(jù)能力高評價阿里云DataWorks思路與能力

    摘要:阿里云成為唯一入選的中國產(chǎn)品。在阿里云的眾多產(chǎn)品中,和共同構(gòu)成了服務(wù)能力的核心。作為大數(shù)據(jù)能力賦能的重要手段,出現(xiàn)在了等阿里云專有云解決方案中。利用云計算技術(shù),互聯(lián)網(wǎng)公司得以快速的將自身的大數(shù)據(jù)處理能力對外賦能。 摘要: Forrester發(fā)布了Now Tech: Cloud Data Warehouse Q1 2018報告,報告對云化數(shù)據(jù)倉庫(Cloud Data Warehouse...

    pinecone 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<