<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      API防重放機制

      說說API的防重放機制

      我們在設計接口的時候,最怕一個接口被用戶截取用于重放攻擊。重放攻擊是什么呢?就是把你的請求原封不動地再發送一次,兩次...n次,一般正常的請求都會通過驗證進入到正常邏輯中,如果這個正常邏輯是插入數據庫操作,那么一旦插入數據庫的語句寫的不好,就有可能出現多條重復的數據。一旦是比較慢的查詢操作,就可能導致數據庫堵住等情況。

      這里就有一種防重放的機制來做請求驗證。

      timestamp+nonce

      我們常用的防止重放的機制是使用timestamp和nonce來做的重放機制。

      timestamp用來表示請求的當前時間戳,這個時間戳當然要和服務器時間戳進行校正過的。我們預期正常請求帶的timestamp參數會是不同的(預期是正常的人每秒至多只會做一個操作)。每個請求帶的時間戳不能和當前時間超過一定規定的時間。比如60s。這樣,這個請求即使被截取了,你也只能在60s內進行重放攻擊。過期失效。

      但是這樣也是不夠的,還有給攻擊者60s的時間。所以我們就需要使用一個nonce,隨機數。

      nonce是由客戶端根據足夠隨機的情況生成的,比如 md5(timestamp+rand(0, 1000)); 它就有一個要求,正常情況下,在短時間內(比如60s)連續生成兩個相同nonce的情況幾乎為0。

      服務端

      服務端第一次在接收到這個nonce的時候做下面行為:

      1. 去redis中查找是否有key為nonce:{nonce}的string
      2. 如果沒有,
        1. 考慮做時間戳判斷,即認為客戶端和服務端的時間差異不應該大于閾值(上述的60s,根據業務場景設置合理值),注意控制好時區Locale。
        2. 則創建這個key,把這個key失效的時間和驗證timestamp失效的時間一致,比如是60s。
      3. 如果有,說明這個key在60s內已經被使用了,那么這個請求就可以判斷為重放請求。

      示例

      那么比如,下面這個請求:

      http://a.com?uid=123&timestamp=1480556543&nonce=43f34f33&sign=80b886d71449cb33355d017893720666

      這個請求中國的uid是我們真正需要傳遞的有意義的參數

      timestamp,nonce,sign都是為了簽名和防重放使用。

      timestamp是發送接口的時間,nonce是隨機串,sign是對uid,timestamp,nonce(對于一些rest風格的api,我建議也把url放入sign簽名)。簽名的方法可以是md5({秘要}key1=val1&key2=val2&key3=val3...)

      服務端接到這個請求:

      1. 先驗證sign簽名是否合理,證明請求參數沒有被中途篡改
      2. 再驗證timestamp是否過期,證明請求是在最近60s被發出的
      3. 最后驗證nonce是否已經有了,證明這個請求不是60s內的重放請求
      posted @ 2019-04-11 10:52  goodboy321  閱讀(1525)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产亚洲精品久久久久久久软件| 亚洲欧洲∨国产一区二区三区| 九九热在线视频只有精品| 久久这里只精品国产免费9| 日本久久99成人网站| 国产中文三级全黄| 宜君县| 亚洲精品一区二区三区免| 欧美午夜精品久久久久久浪潮| 国产精品自拍视频我看看| 奉贤区| 一区二区三区四区自拍视频| 东京热av无码电影一区二区| 人摸人人人澡人人超碰97| 久久大香萑太香蕉av黄软件| 2019香蕉在线观看直播视频| 久久综合伊人77777| 国产在线精品一区二区三区直播| 性男女做视频观看网站| 亚洲国产精品区一区二区| 熟女熟妇伦av网站| 亚洲女女女同性video| 国产一区二区不卡在线 | 久久一卡二卡三卡四卡| 灵寿县| 九九热免费在线视频观看| 99精品国产精品一区二区| 99久久99久久久精品久久| 亚洲综合一区国产精品| 亚洲av成人无网码天堂| 久久国产成人av蜜臀| 亚洲色大成网站www永久男同| 乱人伦中文字幕成人网站在线| 国产美女免费永久无遮挡| 午夜成人无码福利免费视频| 亚洲中文字幕综合小综合| 福贡县| 亚洲精品一区二区制服| 日本高清在线播放一区二区三区| 亚洲中文在线精品国产| 在线观看中文字幕国产码|