国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

單位網(wǎng)站建設(shè)工作功勞網(wǎng)絡(luò)營銷策劃書包括哪些內(nèi)容

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

需求場(chǎng)景

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

Api接口簽名驗(yàn)證主要防御措施為以下幾個(gè):

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

項(xiàng)目路徑

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

代碼實(shí)現(xiàn)

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

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

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

  • 獲取方法上的參數(shù),存入SortedMap
  • 判斷參數(shù)是否合法
    • 判斷appId是否存在對(duì)應(yīng)的secret
    • 判斷時(shí)間戳是否有效
  • 進(jìn)行簽名校驗(yàn)
@Slf4j
@Aspect
public class SignAspect {@Before("@annotation(signatureValidation)")public void doBefore(SignatureValidation signatureValidation) throws Throwable {// 接收到請(qǐng)求,記錄請(qǐng)求內(nèi)容HttpServletRequest request = ((ServletRequestAttributes) (RequestContextHolder.currentRequestAttributes())).getRequest();SortedMap<String, String> allParams = HttpUtils.getAllParams(request);// 1、獲取請(qǐng)求sign簽名參數(shù),String sign = allParams.get("sign");if (StrUtil.isBlank(sign)) {throw new RuntimeException("sign不能為空");}// 2、獲取請(qǐng)求參數(shù)secretString appId = allParams.get("appId");String appSecret = getAppSecret(appId);if (StrUtil.isBlank(appSecret)) {throw new RuntimeException("appId不合法");}// 3、獲取請(qǐng)求參數(shù)timestamp 時(shí)間戳,String timestamp = allParams.get("timestamp");if (StrUtil.isBlank(timestamp)) {throw new RuntimeException("timestamp不能為空");}//3. 比較時(shí)間,120s內(nèi)為合法請(qǐng)求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) {// 對(duì)方簽名String sign = allParams.get("sign");allParams.remove("sign");String mySign = SecureUtil.md5(JSONUtil.toJsonStr(allParams)).toUpperCase();log.info("驗(yàn)簽,對(duì)方簽名:{},我方簽名:{}", sign, mySign);// 驗(yàn)簽Assert.isTrue(StrUtil.equals(sign, mySign), "驗(yàn)簽失敗");}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ù),可以防止重復(fù)提交,在簽名驗(yàn)證成功后,判斷是否重復(fù)提交,原理就是結(jié)合redis,判斷是否已經(jīng)提交過

    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;}
標(biāo)題復(fù)制10行,并且每行大于10個(gè)字符 標(biāo)題復(fù)制10行,并且每行大于10個(gè)字符 標(biāo)題復(fù)制10行,并且每行大于10個(gè)字符 標(biāo)題復(fù)制10行,并且每行大于10個(gè)字符 標(biāo)題復(fù)制10行,并且每行大于10個(gè)字符 標(biāo)題復(fù)制10行,并且每行大于10個(gè)字符 標(biāo)題復(fù)制10行,并且每行大于10個(gè)字符 標(biāo)題復(fù)制10行,并且每行大于10個(gè)字符 標(biāo)題復(fù)制10行,并且每行大于10個(gè)字符 標(biāo)題復(fù)制10行,并且每行大于10個(gè)字符

在這里插入圖片描述

http://m.aloenet.com.cn/news/37956.html

相關(guān)文章:

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