当前位置: 首页 > wzjs >正文

wordpress+苹果seo单页快速排名

wordpress+苹果,seo单页快速排名,最好的网站设计,哈尔滨旅游网页设计背景说明 我们组负责维护的一个系统,前端界面挂载在其他两个系统上,因为历史遗留原因,同时也挂在公网上,没有登陆功能和用户体系,只要输入网址就能访问,虽然这个系统是给公司内部人员使用,但是…

背景说明

我们组负责维护的一个系统,前端界面挂载在其他两个系统上,因为历史遗留原因,同时也挂在公网上,没有登陆功能和用户体系,只要输入网址就能访问,虽然这个系统是给公司内部人员使用,但是存在被恶意登陆并修改用户数据的风险;

解决思想

这个问题显然是权限校验的问题;系统配置拦截器或者过滤器,对其他系统发送的请求进行拦截、设计的方案是先校验参数完不完整、再校验token在不在有效期内,最后校验token是否正确;这三个环节哪个环节没有校验成功,不允许访问;

因为我们的系统是用于公司其他系统使用,这里以系统A为例代表其他系统;我们系统和系统A都要在程序中保存一个密钥,系统A每次访问我们系统前,会先根据userId和当前时间戳timestamp根据SHA-256算法生成token,最后将userId、timestamp和token参数传输到我们系统,我们系统进行权限校验;

程序流程

public class ApiSignatureInterceptor implements HandlerInterceptor {private static final long MAX_TIME_DIFF = TimeUnit.MINUTES.toMillis(5);@Value("${custom.interceptor.enabled:false}")private boolean enableInterceptor;@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {if (this.enableInterceptor){String userId = request.getHeader("userId");String userName = request.getHeader("userName");String timestamp = request.getHeader("timestamp");String signature = request.getHeader("signature");//1.先验证数据都存不存在if (userId == null || timestamp == null || signature == null) {sendErr(response,"参数不全");log.error("参数不全");return false;}//boolean isAccess = SignatureUtils.verifySignature()//2.验证签名是否过期long currentTime = System.currentTimeMillis();long timeDiff = currentTime - Long.parseLong(timestamp);if (timeDiff > MAX_TIME_DIFF) {sendErr(response,"签名过期,请重新发送");return false;}//3.验证token的有效性boolean isAccess = SignatureUtils.verifySignature(buildSignData(userId,timestamp), signature);if (!isAccess) {sendErr(response,"签名校验不通过");return false;}return true;}else {return true;}}/**** 生成签名的原始数据* @param userId* @param timestamp* @return*/private static String buildSignData(String userId,String timestamp){return String.format("userId=%s&timestamp=%s",userId,timestamp);}public static void sendErr(HttpServletResponse response,String msg) throws Exception {ResultResponse<Object> error = ResultResponseUtil.error(StatusEnum.FORBIDDEN, msg);response.setContentType("application/json;charset=utf-8");String errJson = JSON.toJSONString(error);response.getWriter().write(errJson);}
}
    public static String generateSignatureUtils(String data){try{//签名实例Mac sha256HMAC = Mac.getInstance(HMAC_SHA256);SecretKeySpec spec = new SecretKeySpec(secret.getBytes(StandardCharsets.UTF_8), HMAC_SHA256);sha256HMAC.init(spec);byte[] hashBytes = sha256HMAC.doFinal(data.getBytes(StandardCharsets.UTF_8));return Base64.getEncoder().encodeToString(hashBytes);}catch (Exception e){log.error("签名生成失败" + e.getMessage());throw new BusinessException("签名生成失败");}
http://www.dtcms.com/wzjs/200871.html

相关文章:

  • 泰安新闻网今日头条哈尔滨网络seo公司
  • java开发网站教程网站报价
  • 建网站域名注册沧州seo公司
  • 建设好网站为什么读取不到文件优化关键词的方法有哪些
  • 北京做网站公司哪家好世界羽联最新排名
  • 武汉做网站推广哪家好整合营销名词解释
  • 国内10大网站建设公司灰色词排名代做
  • 网站建设推广济南兴田德润优惠吗微信拓客的最新方法
  • 最靠谱的网站建设公司北京十大最靠谱it培训机构
  • 哈尔滨制作网站的公司国外免费推广网站有哪些
  • 网站建设存在的问题深圳百度竞价推广
  • 律师网站建设模板山东做网站公司
  • 长沙小红书推广公司杭州seo技术
  • 耒阳建设局官方网站做做网站
  • 做搜狗手机网站优化首长沙优化科技有限公司正规吗
  • 个人免费简历模板网站优化外包
  • 设计公司logo软件北京seo优化分析
  • 简述电子商务网站开发的基本原则他达那非副作用太强了
  • 小企业网站建设一般收费seo门户网站
  • 商城网站建设价格网络推广文案
  • 网站建设哪个好一些电子商务营销方法
  • 上海网站定制价格低百度系优化
  • 怎样建一个自己公司的网站营销策略4p
  • 网站域名做入什么科目热狗seo外包
  • 广告招牌制作设计软件seo辅助工具
  • 何炅做的网站广告百度sem竞价托管
  • 网站建设的公司好做吗seo网站关键词优化机构
  • 在哪查询网站做的哪些外链中国十大网络营销平台
  • 无锡做网站的公司网络营销课程论文
  • 信息技术网站建设教案四种营销策略