中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

單位網站建設工作功勞網絡營銷策劃書包括哪些內容

單位網站建設工作功勞,網絡營銷策劃書包括哪些內容,怎么用上線了做網站,哪里有網站建設哪家好需求場景 由于項目需要開發(fā)第三方接口給多個供應商,為保證Api接口的安全性,遂采用Api接口簽名驗證。 Api接口簽名驗證主要防御措施為以下幾個: 請求發(fā)起時間得在限制范圍內請求的用戶是否真實存在是否存在重復請求請求參數(shù)是否被篡改 項目…

需求場景

由于項目需要開發(fā)第三方接口給多個供應商,為保證Api接口的安全性,遂采用Api接口簽名驗證。

Api接口簽名驗證主要防御措施為以下幾個:

  • 請求發(fā)起時間得在限制范圍內
  • 請求的用戶是否真實存在
  • 是否存在重復請求
  • 請求參數(shù)是否被篡改

項目路徑

https://gitee.com/charles_ruan/easy-sign

代碼實現(xiàn)

不同的客戶端有著不同的appSecret

  • 通過密鑰可以為不同的客戶端(調用方) 分配不同的appSecret,來區(qū)分不同客戶端app(調用方)。
  • 將獲取到的appSecret 參與到sign(簽名)的生成,保證了客戶端的請求簽名是由我們后臺控制的。

定義切面,攔截帶SignatureValidation方法。

  • 獲取方法上的參數(shù),存入SortedMap
  • 判斷參數(shù)是否合法
    • 判斷appId是否存在對應的secret
    • 判斷時間戳是否有效
  • 進行簽名校驗
@Slf4j
@Aspect
public class SignAspect {@Before("@annotation(signatureValidation)")public void doBefore(SignatureValidation signatureValidation) throws Throwable {// 接收到請求,記錄請求內容HttpServletRequest request = ((ServletRequestAttributes) (RequestContextHolder.currentRequestAttributes())).getRequest();SortedMap<String, String> allParams = HttpUtils.getAllParams(request);// 1、獲取請求sign簽名參數(shù),String sign = allParams.get("sign");if (StrUtil.isBlank(sign)) {throw new RuntimeException("sign不能為空");}// 2、獲取請求參數(shù)secretString appId = allParams.get("appId");String appSecret = getAppSecret(appId);if (StrUtil.isBlank(appSecret)) {throw new RuntimeException("appId不合法");}// 3、獲取請求參數(shù)timestamp 時間戳,String timestamp = allParams.get("timestamp");if (StrUtil.isBlank(timestamp)) {throw new RuntimeException("timestamp不能為空");}//3. 比較時間,120s內為合法請求if (Math.abs(Long.parseLong(timestamp) - System.currentTimeMillis()) > 120000) {throw new RuntimeException("timestamp失效");}allParams.put("secret", appSecret);verifySign(allParams);}private void verifySign(SortedMap<String, String> allParams) {// 對方簽名String sign = allParams.get("sign");allParams.remove("sign");String mySign = SecureUtil.md5(JSONUtil.toJsonStr(allParams)).toUpperCase();log.info("驗簽,對方簽名:{},我方簽名:{}", sign, mySign);// 驗簽Assert.isTrue(StrUtil.equals(sign, mySign), "驗簽失敗");}public String getAppSecret(String appId) {Map<String, String> map = new HashMap<>();map.put("zs001", "asd123fhg3b7fgh7dfg");map.put("ls001", "hghfgh123btgfyh1212");return map.get(appId);}
}

利用nonce參數(shù),可以防止重復提交,在簽名驗證成功后,判斷是否重復提交,原理就是結合redis,判斷是否已經提交過

    public boolean isReplayAttack(String appId, String timeStamp, String nonce, String signature) {StringBuilder redisKey = new StringBuilder();redisKey.append("IS_REPLAY_ATTACK").append(":").append(Constant.APP_ID).append(":").append(appId).append(Constant.TIME_STAMP).append(":").append(timeStamp).append(Constant.NONCE).append(":").append(nonce).append(Constant.SIGN).append(":").append(signature);Object value = redisTemplate.opsForValue().get(redisKey);if (value != null && StringUtils.equals(signature, value.toString()))return false;elseredisTemplate.opsForValue().set(redisKey, signature, 1000 * 50);return false;}
標題復制10行,并且每行大于10個字符 標題復制10行,并且每行大于10個字符 標題復制10行,并且每行大于10個字符 標題復制10行,并且每行大于10個字符 標題復制10行,并且每行大于10個字符 標題復制10行,并且每行大于10個字符 標題復制10行,并且每行大于10個字符 標題復制10行,并且每行大于10個字符 標題復制10行,并且每行大于10個字符 標題復制10行,并且每行大于10個字符

在這里插入圖片描述

http://www.risenshineclean.com/news/37956.html

相關文章:

  • 湖南城鄉(xiāng)建設網站全網絡品牌推廣
  • 怎么給公司建網站河南網站建設定制
  • 商城網站搜狗優(yōu)化排名
  • wordpress頁面的評論功能嘉興網站建設方案優(yōu)化
  • 有了網站源碼怎么做網站武漢百度推廣多少錢
  • 自己搭建網站的步驟seo搜索引擎優(yōu)化實訓總結
  • 基于ipv6的網站開發(fā)鄭州百度推廣開戶
  • 網站服務器搭建的步驟采集站seo課程
  • 海南網站建設服務外貿谷歌seo
  • 萊蕪在線沙總寧波seo在線優(yōu)化方案
  • 鄭州英文網站建設刷排名seo
  • 網站建設與管理教學計劃長沙網站se0推廣優(yōu)化公司
  • 如何用電腦做網站服務器網站正能量免費推廣軟件
  • b2c電子商務網站制作商旅平臺app下載
  • 愛淘寶淘寶網首頁seo關鍵詞排名優(yōu)化技巧
  • 揭陽城鄉(xiāng)建設局網站seo網站關鍵詞優(yōu)化工具
  • 網上書店網站建設設計的收獲惡意點擊競價是用的什么軟件
  • 世界頂級網站設計谷歌chrome
  • 北京做網站公司北京seo優(yōu)化方案
  • 重慶物流公司網站建設網站建設企業(yè)建站
  • 創(chuàng)建個人網站多少錢外包推廣服務
  • 網站推廣和宣傳的方法推廣策略有哪些方法
  • 互聯(lián)網軟件外包網站怎么優(yōu)化排名靠前
  • 工商局網站如何做網登2022十大網絡營銷案例
  • php小程序商城青島谷歌優(yōu)化
  • 上海網站建設公司價格深圳網站seo服務
  • 已有網站開發(fā)app終端愛站工具網
  • 做資料網站是自己建服務器好還是租用好網絡營銷活動策劃方案模板
  • 廣東室內設計公司排名內江seo
  • 商丘加盟小吃網站東莞做網站優(yōu)化