# App 前端 <==> 服務(wù)器后端 API 加密文檔

App 前端 <==> 服務(wù)器后端 API 加密文檔

主要三點約定(三點都需要):

用戶驗證:使用 Auth2.0 或者 Json web token(簡稱 jwt)

接口調(diào)用來源限制:使用 AppSecret 和服務(wù)端進行 Hash 加密約定

網(wǎng)絡(luò)傳輸安全:使用 Https 安全傳輸協(xié)議對傳輸數(shù)據(jù)進行加密

??用戶驗證

說明:就像 web 前端使用 cookie & session 來進行用戶的登陸狀態(tài)保持一樣过蹂,手機端 App 也需要良好的鑒權(quán)方式油航。

目的:防止用戶名密碼等隱私信息泄露

集成方式:使用 Auth2.0 或者 Json web token,請根據(jù)需求進行選取确买,我們下面討論 jwt恬叹。

解鎖??姿勢

JWT@2x.png

如果只是做用戶登陸狀態(tài)安全持久化的話候生,那服務(wù)器采用 Json web token 就好。jwt 是現(xiàn)在做前后端分離用的比較多的一種驗證模式绽昼,隨著如 vue.js唯鸭、react.jsJS 框架的火爆,web 前端開發(fā)也進入到了單頁應(yīng)用(SPA)的時期硅确,jwt 就是用來做前后端分離鑒權(quán)一種良好的解決方案目溉。

jwt 可以避免基礎(chǔ)的賬號密碼鑒權(quán),不用每次傳輸用戶名和密碼進行用戶驗證菱农,保證了用戶賬號的安全性

手機應(yīng)用是前后端分離很徹底的應(yīng)用缭付,用 jwt 這種登陸換取 token 進行用戶會話保持是現(xiàn)階段比較好的方式。這里不講具體技術(shù)循未,因為 jwt 屬于后端集成陷猫,具體 jwt 方案請參考 jwt 官網(wǎng) 或者各自語言的三方庫網(wǎng)站。

??接口調(diào)用來源 App 限制

說明: 這一步?jīng)]有其他兩步重要的妖,但也是對安全性要求高的應(yīng)用必備的

目的:非官方應(yīng)用無法模擬用戶隱私行為绣檬,防止 Api 被惡意調(diào)用(如:獲取用戶訂單,用戶信息接口)

集成方式:前后端一起約定一個 AppKeyAppSecret嫂粟,進行 Hash 等方式加密

解鎖??姿勢

Secret@2x.png

前后臺約定一個 AppKey 用來做為應(yīng)用的唯一標識符娇未,也可以用來區(qū)分 AndroidiOS 端。
例(更新用戶信息):

*更新用戶信息*
//約定 key & 秘鑰
AppKey = "fGLQcHZtmFfadfasd3eZ3uQGxcu4YwxeEuBvTC"

// Secret 秘鑰用來進行做前后臺數(shù)據(jù)加密混合赋元,把參數(shù) key 進行生序排列忘蟹,之后拼接飒房,采用秘鑰進行散列加密,也可以加鹽處理媚值,對數(shù)據(jù)安全要求極高的話可以進行時間戳驗證 => 這樣就可以計算出加密的參數(shù) secret:""

AppSecret = "YCsmvfdsfsaGuJCffdasfqzuAceNtF7o3XvnkRAoWCqX"

// 本篇只討論 API 傳輸安全狠毯,不討論 RESTFUL_API
RESTFUL_API_URL: https://netzhiji.com/api/v1/users

// 請求方式
Request_method: 'put',

// 請求頭設(shè)置,針對服務(wù)器做用戶鑒權(quán)驗證
Request_header: {
    token: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ',
}

//參數(shù)
params: {
    userID: '12',
    name: '劉紫陽',
    orderAddress: '城鄉(xiāng)結(jié)合部'... 等參數(shù)
    secret:"此處參數(shù)通過 AppSecret秘鑰加密得出"
} 

服務(wù)器接收到請求后回先通過相同算法計算出加密字段褥芒,驗證參數(shù)中 scret 是否正確嚼松,如果不正確,則返回調(diào)用接口失敗锰扶。

API 加密方式:

設(shè)計簽名算法(具體 hash 次數(shù)可根據(jù)需求以及實現(xiàn)做出調(diào)節(jié))

md5( md5( md5(按參數(shù) key 降序排列拼接)3次 + md5(APP_SECRET)3次 )7次 + md5(鹽:YUKhRjPmsnxho3kEkJszKrBXpsYZTDynwKxRfpG3xfZuq)6次 )3次

??網(wǎng)絡(luò)傳輸安全

說明: :使用 Https 安全傳輸協(xié)議對傳輸數(shù)據(jù)進行加密

目的:防止 Api 被惡意抓认仔铩(如:下訂單,支付接口)

集成方式:主要是后端要去申請 Https 的證書坷牛,有收費也有免費的罕偎,免費的推薦如國內(nèi) 又拍云 SSL

解鎖??姿勢

SSL@2x.png

SSL引用自維基百科

Transport Layer Security (TLS) and its predecessor, Secure Sockets Layer (SSL), both frequently referred to as "SSL", are cryptographic protocols that provide communications security over a computer network.[1] Several versions of the protocols find widespread use in applications such as web browsing, email, Internet faxing, instant messaging, and voice-over-IP (VoIP). Websites use TLS to secure all communications between their servers and web browsers.

傳輸層安全協(xié)議(英語:Transport Layer Security,縮寫:TLS)京闰,及其前身安全套接層(Secure Sockets Layer颜及,縮寫:SSL)是一種安全協(xié)議,目的是為互聯(lián)網(wǎng)通信蹂楣,提供安全及數(shù)據(jù)完整性保障俏站。網(wǎng)景公司(Netscape)在1994年推出首版網(wǎng)頁瀏覽器,網(wǎng)景導航者時痊土,推出 HTTPS 協(xié)議肄扎,以 SSL 進行加密,這是 SSL 的起源赁酝。IETF將SSL進行標準化犯祠,1999年公布第一版TLS標準文件。隨后又公布RFC 5246 (2008年8月)與 RFC 6176 (2011年3月)酌呆。在瀏覽器雷则、電子郵件、即時通信肪笋、VoIP、網(wǎng)絡(luò)傳真等應(yīng)用程序中度迂,廣泛支持這個協(xié)議藤乙。主要的網(wǎng)站,如 Google惭墓、Facebook 等也以這個協(xié)議來創(chuàng)建安全連接坛梁,發(fā)送數(shù)據(jù)。目前已成為互聯(lián)網(wǎng)上保密通訊的工業(yè)標準腊凶。

簡單來說就是一般接口傳輸如果采用了 TLS/SSL 加密協(xié)議后划咐,別人就難以抓取到有效數(shù)據(jù)了拴念。即使抓包抓到的也是亂碼。

總結(jié)

通過以上三種方式并行褐缠,可以有效的提高我們手機端應(yīng)用的安全性政鼠。以上為拋磚引玉,如果大家有更好的方法也歡迎在評論區(qū)提出互相學習队魏。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末公般,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子胡桨,更是在濱河造成了極大的恐慌官帘,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件昧谊,死亡現(xiàn)場離奇詭異刽虹,居然都是意外死亡,警方通過查閱死者的電腦和手機呢诬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門涌哲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人馅巷,你說我怎么就攤上這事膛虫。” “怎么了钓猬?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵稍刀,是天一觀的道長。 經(jīng)常有香客問我敞曹,道長账月,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任澳迫,我火速辦了婚禮局齿,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘橄登。我一直安慰自己抓歼,他們只是感情好,可當我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布拢锹。 她就那樣靜靜地躺著谣妻,像睡著了一般。 火紅的嫁衣襯著肌膚如雪卒稳。 梳的紋絲不亂的頭發(fā)上蹋半,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天,我揣著相機與錄音充坑,去河邊找鬼减江。 笑死染突,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的辈灼。 我是一名探鬼主播份企,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼茵休!你這毒婦竟也來了薪棒?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤榕莺,失蹤者是張志新(化名)和其女友劉穎俐芯,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體钉鸯,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡吧史,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了唠雕。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片贸营。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖岩睁,靈堂內(nèi)的尸體忽然破棺而出钞脂,到底是詐尸還是另有隱情,我是刑警寧澤捕儒,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布冰啃,位于F島的核電站,受9級特大地震影響刘莹,放射性物質(zhì)發(fā)生泄漏阎毅。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一点弯、第九天 我趴在偏房一處隱蔽的房頂上張望扇调。 院中可真熱鬧,春花似錦抢肛、人聲如沸狼钮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽燃领。三九已至,卻和暖如春锦援,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背剥悟。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工灵寺, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留曼库,地道東北人。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓略板,卻偏偏與公主長得像毁枯,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子叮称,可洞房花燭夜當晚...
    茶點故事閱讀 44,914評論 2 355

推薦閱讀更多精彩內(nèi)容