<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## 一、概述 考慮到接口不應該被任意調用,必須進行調用管控,避免風險; ## 二、方案 ## **請求參數中追加簽名參數raySignature和rayTimeStamp** 每個請求,都增加簽名參數,具體方案如下: 1. 前端需先從后端獲取合法授權的appId(固定位)和appSecret作為基準參數,這兩個參數需要存到前端本地,必須考慮到因為安全因素,修改appSecret; 2. 所有的接口請求,除接口定義的參數外,額外的,必須(無論GET/POST)附加以下兩個參數:raySignature和rayTimeStamp,這兩個參數取值的算法如下所述: ``` rayTimeStamp=當前請求的時刻,格式為yyyyMMddHHmmssSSS(17位,如20210303125959131); raySignature=appId+md5(md5(rayTimeStamp)+appSecret) ``` ## **請求頭中追加簽名參數rayHeadSignature** 1.前端構造完參數部分的簽名之后,需要繼續構造請求頭部的簽名參數rayHeadSignature,算法如下; ``` rayHeadSignature=md5(raySignature+md5(md5(rayTimeStamp+appSecret)+appId)) ``` ## **安全增強** 為了規避惡意請求,平臺繼續提供更增強的參數驗證算法,除上述實現及加密參數驗證外,考慮到外部可能劫持合法的參數,在瞬間發起利用合法攜帶參數的攻擊,平臺增加了失效驗證功能,也就是說,每個請求的安全參數(上述三個參數),只能被合法的使用有限次數(取決于配置,一般建議配置1即可),如果同一個合法時間戳在有效時間范圍內(非有效時間范圍內都不合法),多次被請求,就標識為非法了; ``` rayframework.security.ray-timestamp-before-minutes=3 rayframework.security.ray-timestamp-expire-minutes=3 rayframework.security.ray-timestamp-reuse-max-times=1 ``` ## 三、注意 1、需要注意的是,接口請求后,后端既校驗合法性,也會校驗時效性,前端編程需要注意,生成時間戳之后,如果提交的時間與生成時間之間間隔超過指定時間(依據后端配置約定),那么,即使是合法的請求,也會被后端拒絕; 2、如果是外部反調的接口(比如微信支付的回調接口),必須進行免驗證設定,在接口的方法(controller)上,必須增加注解@RayEscapeRequestValidateControllerMethod,否則會導致外部請求不能成功;對于內部設計的某些特殊接口(如用于內部多媒體文件訪問的,直接通過地址接口訪問,無法注入頭部參數的情況),可以通過增加注解@RayEscapeRequestHeaderValidateControllerMethod,避免驗證頭部簽名; 3、如果客戶端使用的appId或appSecret被泄露了,那么,后端更新該客戶端設置或禁用,即可拒絕訪問;
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看