《thinkphp》二、API數據安全

  • 1、每次http請求都攜帶 sign, sign是將關鍵參數拼接的字符串RSA加密後的字符串
    如:需要生成簽名的參數:rsa_encrypt_str(“did=111&version=1.0&time=1548162356”)
    1、did:設備號,即app每個設備的唯一標識
    2、version:版本信息,例:v1.0
    3、time:時間戳,通過獲取服務器的10位的時間戳

  • 2、保證sign的唯一性

    • a、解密sign出來時間戳和當前時間戳在10s內
    • b、上次請求的sign存到cache中緩存時間設置20s,這次請求如果新sign(可能被劫持後使用)還在cache中說明無效 (b的時間要大於a的時間)
  • 3、請求參數、返回數據按安全性適當加密

  • 4、返回客戶端access_token唯一性

    /**
     * 設置登錄的token —— 唯一性的
     * @param string $phone
     * @return string
     */
    public static function setAppLoginToken($phone = '') {
        $str = md5(uniqid(md5(microtime(true)), true));
        return sha1($str.$phone);
    }
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章