1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        HTTP SignRESTful API 簽名認(rèn)證框架

        聯(lián)合創(chuàng)作 · 2023-09-19 07:27

        HTTP Sign 是一個(gè)RESTful API 簽名認(rèn)證項(xiàng)目。
        該項(xiàng)目將解決HTTP通信中的如下問題:

        • 防止重放攻擊

        • 防止中途篡改數(shù)據(jù)

        • 保證請(qǐng)求服務(wù)冪等

        從而,盡可能地讓 HTTP 通信接近安全。

        HTTP Sign 的設(shè)計(jì)

        字面約定

        字面格式 含義
        < > 變量
        [ ] 可選項(xiàng)
        { } 必選項(xiàng)
        | 互斥關(guān)系
        標(biāo)點(diǎn)符號(hào) 本文一律采用英文標(biāo)點(diǎn)符號(hào)

        請(qǐng)求參數(shù)名,命名規(guī)則

        1. 首字母小寫,如果名稱由多個(gè)單詞組成,每個(gè)單詞的首字母要大寫

        2. 英文縮寫詞一律小寫

        3. 只能由 [A~Z]、[a~z]、[0~9] 以及字符"-"、"_"、"." 組成參數(shù)名

        4. 不能以數(shù)字開頭

        5. 不允許出現(xiàn)中文及拼音命名

        術(shù)語表

        術(shù)語 全稱 中文 說明
        RS RESTful Web Services WEB REST服務(wù) REST 架構(gòu)風(fēng)格的Web服務(wù)
        SecurityGroup Security Group 安全組 安全組制定安全策略
        GMT Greenwich Mean Time 格林尼治標(biāo)準(zhǔn)時(shí)間 指位于英國倫敦郊區(qū)的皇家格林尼治天文臺(tái)的標(biāo)準(zhǔn)時(shí)間
        URIPath Uniform Resource Identifier Path 統(tǒng)一資源標(biāo)識(shí)符的路徑 用于標(biāo)識(shí)某一互聯(lián)網(wǎng)資源路徑
        RFC Request For Comments 一系列以編號(hào)排定的文件 幾乎所有的互聯(lián)網(wǎng)標(biāo)準(zhǔn)都有收錄在RFC文件之中

        相關(guān)名詞解釋

        1. 字典升序排列
          如同在字典中排列單詞一樣排序,按照字母表遞增順序排列,參與比較的兩個(gè)單詞,若它們的第一個(gè)字母相同,就比較第二個(gè)字母,依此類推.
          例如: zhong zhang zheng zhen, 做字典升序排列后的結(jié)果是 zhang zhen zheng zhong.

        2. 冪等性
          接口在設(shè)計(jì)上可以被完全相同的URL重復(fù)調(diào)用多次,而最終得到的結(jié)果是一致的.

        使用限制

        請(qǐng)求端的當(dāng)前時(shí)間與服務(wù)器的當(dāng)前時(shí)間之差的絕對(duì)值不能大于10分鐘,否則拒絕處理. 也就是說,請(qǐng)求端的時(shí)間不能比服務(wù)器時(shí)間快10分鐘或慢10分鐘,否則,服務(wù)器不受理.

        請(qǐng)求結(jié)構(gòu)

        1. 服務(wù)地址
          接口按照功能劃分成了不同的功能模塊,每個(gè)模塊使用不同的域名或上下文訪問,具體域名或上下文請(qǐng)參考各個(gè)接口的文檔.

        2. 通信協(xié)議
          所有接口均采用HTTPS通信.

        3. 請(qǐng)求方法
          支持 [GET,POST,PUT,DELETE,PATCH,HEAD,OPTIONS].

        4. 字符編碼
          在無特別說明情況下,均使用UTF-8編碼.

        5. API請(qǐng)求結(jié)構(gòu)

          名稱 描述 備注
          API入口 API調(diào)用的RS服務(wù)的入口 https://<domain>/path/hi
          公共header 每個(gè)接口都包含的通用請(qǐng)求頭 詳見 公共參數(shù)
          公共參數(shù) 每個(gè)接口都包含的通用參數(shù) 詳見 公共參數(shù)

        公共參數(shù)

        公共請(qǐng)求頭(Common Request Headers)

        名稱 是否必選 描述
        Authorization 用于驗(yàn)證請(qǐng)求合法性的認(rèn)證信息
        Accept 默認(rèn):"application/json",表示發(fā)送端(客戶端)希望從服務(wù)端接受到的數(shù)據(jù)類型
        Content-Length RFC2616中定義的HTTP請(qǐng)求內(nèi)容長度(一般的http客戶端工具都會(huì)自動(dòng)帶上這個(gè)請(qǐng)求頭)
        Date HTTP 1.1協(xié)議中規(guī)定的GMT時(shí)間,例如:Wed, 28 Mar 2018 09:09:19 GMT
        Host 訪問Host值(一般的http客戶端工具都會(huì)自動(dòng)帶上這個(gè)請(qǐng)求頭)

        公共請(qǐng)求參數(shù)(Common Http Request Parameters)

        名稱 是否必選 類型 描述
        version String API 版本號(hào),當(dāng)前值為1
        action String 接口的指令名稱,如:action=myInfo
        nonce String 隨機(jī)數(shù),長度范圍[8,36]
        accessKeyId String 在云API密鑰上申請(qǐng)的標(biāo)識(shí)身份的 accessKeyId,一個(gè) accessKeyId 對(duì)應(yīng)唯一的 accessKeySecret , 而 accessKeySecret 會(huì)用來生成請(qǐng)求簽名 Signature
        signatureMethod String 簽名算法,目前支持HMACSHA256和HMACSHA1.默認(rèn)采用:HMACSHA1驗(yàn)證簽名
        token String 臨時(shí)證書所用的Token,需要結(jié)合臨時(shí)密鑰一起使用

        服務(wù)端將從 QueryString 獲得這些參數(shù)。

        簽名機(jī)制

        用戶在HTTP請(qǐng)求中增加Authorization的Header來包含簽名(Signature)信息,表明這個(gè)消息已被簽名,認(rèn)證是否通過,服務(wù)端說了算。

        瀏覽 25
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        編輯 分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        編輯 分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            69视频网站免费入口精品 | 亚洲精品无码不卡在线播HE | 东京热一二三区 | 香蕉国产2023 | 男男情×片| 亚洲国产成人va在线观看天堂 | 日本丰满岳妇伦3在线观看 | 亚洲一级毛片 | 国产h在线看 | 97香蕉网 |