Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何开发一个接口_网站接口开发

如何开发一个接口_网站接口开发

作者头像
全栈程序员站长
发布于 2022-10-01 09:18:44
发布于 2022-10-01 09:18:44
9620
举报

大家好,又见面了,我是你们的朋友全栈君。

1、客户端请求加密、服务端请求解密

2、防止重复提交

一般是在数据库加状态,在 status=0 的状态下更新,更新完状态变为1,这样就可以防止重复提交

———————————————————————————

签名基本原理是通过 key/secret 的实现: 1, 服务器负责为每个客户端生成一对 key/secret ( key/secret 没有任何关系,不能相互推算),保存,并告知客户端。 2, 当客户端调用 api 时,根据某种规则将所有请求参数串联起来并用 secret 生成签名 sign 。 3, 将 sign 和 key 一起放进请求参数对服务器进行调用。(注意 secret 不要传) 4, 服务端收到请求,根据 key 去查 secret ,然后用同样的算法,验证签名。 5, 为避免重放攻击,可加上 timestamp 参数,指明客户端调用的时间。服务端在验证请求时若 timestamp 超过允许误差则直接返回错误。

———————————————————————————————————

签名算法过程:

1.对除签名外的所有请求参数按key做的升序排列,value无需编码。 (假设当前时间的时间戳是12345678)

例如:有c=3,b=2,a=1 三个参,另加上时间戳后, 按key排序后为:a=1,b=2,c=3,_timestamp=12345678。

2 把参数名和参数值连接成字符串,得到拼装字符:a1b2c3_timestamp12345678

3 用申请到的appkey 连接到接拼装字符串头部和尾部,然后进行32位MD5加密,最后将到得MD5加密摘要转化成大写。

示例:假设appkey=test,md5(testa1b2c3_timestamp12345678test),取得MD5摘要值 C5F3EB5D7DC2748AED89E90AF00081E6 。

————————————————————————————

总结:

  1. 接口调用方和接口提供方约定好统一的参数加密算法
  2. 接口调用方在调用时把加密后的_sign放在参数中去请求接口
  3. 接口提供方接到响应后,判断时间戳是不是在有效时间内(这个时间间隔根据你的安全范围可以是10分钟,5分钟,20秒等,过期失效,前提是需要保证接口提供方和调用方的服务器时间为准确的网络同步时间)
  4. 把参数中除了_sign以外的参数进行加密,然后把加密结果和传过来的_sign比较,相同则执行调用请求。

md5加密

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/192351.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月17日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
公司来了个大神,三方接口调用方案设计的真优雅~~
在为第三方系统提供接口的时候,肯定要考虑接口数据的安全问题,比如数据是否被篡改,数据是否已经过时,数据是否可以重复提交等问题。
程序员蜗牛
2024/04/22
2.5K0
公司来了个大神,三方接口调用方案设计的真优雅~~
大厂案例 - 通用的三方接口调用方案设计(上)
在为第三方系统提供接口时,关键是确保数据的完整性、安全性和防止重复提交。以下是一个基于API密钥(Access Key/Secret Key)和回调机制的设计方案,具有多层次的安全保障。
小小工匠
2024/05/26
4.4K0
大厂案例 - 通用的三方接口调用方案设计(上)
这才叫 API 接口设计!
大家好,我是鱼皮,前段时间在 星球 里看到了一位小伙伴分享的文章《API 接口设计最佳实践》,我也读了一遍,写的确实好,给大家分享一下,相信对后端开发的小伙伴会很有帮助。
程序员鱼皮
2022/04/08
2.8K0
这才叫 API 接口设计!
api接口的安全设计:使用token+sign+时间戳
服务端以api的方式将数据响应给客户端是目前的趋势,可以用在前后端分离的架构中,前后端分离之后,前后端人员能够更加专注于自己板块的东西,也可以用在服务端与服务端相互调用中。
炒香菇的书呆子
2023/10/03
2.6K0
玩转ApiFox脚本实现自动化
调用API的服务URL地址,开放平台目前提供了2个环境给ISV使用:正式环境,海外环境。
物立
2022/09/15
1.6K0
拒绝接口裸奔!开放API接口签名验证!
为开发者分配AccessKey(开发者标识,确保唯一)和SecretKey(用于接口加密,确保不易被穷举,生成算法不易被猜测)。
架构师修炼
2020/09/30
1.4K0
【笔记】API 接口签名验证
很多时候在开发对外接口的时候,为了保证接口的安全以及服务的稳定,要对接口的访问添加一定的限制规则。
redszhao
2021/08/09
2.2K0
企业API接口设计(token、timestamp、sign)之具体实现
Token:访问令牌access token, 用于接口中, 用于标识接口调用者的身份、凭证,减少用户名和密码的传输次数。一般情况下客户端(接口调用方)需要先向服务器端申请一个接口调用的账号,服务器会给出一个appId和一个key, key用于参数签名使用,注意key保存到客户端,需要做一些安全处理,防止泄露。
lyb-geek
2019/11/30
3K0
2018-11-22 Api接口加密策略
2.防篡改攻击(案例:在公共网络环境中,请求头/查询字符串/内容 在传输过程被修改)
Albert陈凯
2018/12/14
1.7K1
2018-11-22 Api接口加密策略
怎么做开放API的签名认证
项目中有一套restful接口需要暴露在公网环境中,需要确保调用安全。包括以下三个方面
普通程序员
2019/10/23
1.7K0
怎么做开放API的签名认证
如何设计一个牛逼的API接口(技术创作101训练营)
在日常开发中,总会接触到各种接口。前后端数据传输接口,第三方业务平台接口。一个平台的前后端数据传输接口一般都会在内网环境下通信,而且会使用安全框架,所以安全性可以得到很好的保护。这篇文章重点讨论一下提供给第三方平台的业务接口应当如何设计?我们应该考虑哪些问题?
Java旅途
2020/09/21
1.3K0
如何设计一个牛逼的API接口(技术创作101训练营)
如何保证API接口安全?
在实际的业务开发过程中,我们常常会碰到需要与第三方互联网公司进行技术对接,例如支付宝支付对接、微信支付对接、高德地图查询对接等等服务,如果你是一个创业型互联网,大部分可能都是对接别的公司api接口。
纯洁的微笑
2021/07/01
1.7K0
如何保证API接口安全?
第三方API对接如何设计接口认证?
在与第三方系统做接口对接时,往往需要考虑接口的安全性问题,本文主要分享几个常见的系统之间做接口对接时的认证方案。
陶陶技术笔记
2021/07/23
2.7K0
第三方API对接如何设计接口认证?
3条原则,16个小点,帮你写出一个优秀的对外接口!
点击上方“芋道源码”,选择“设为星标” 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java 2021 超神之路,很肝~ 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 Netty 源码解析 消息中间件 RocketMQ 源码解析 数据库中间件 Sharding-JDBC 和 MyCAT 源码解析 作业调度中间件 Elastic-Job 源码解析 分布式事务中间件 TCC-Transaction
芋道源码
2022/04/06
1K0
3条原则,16个小点,帮你写出一个优秀的对外接口!
php接口安全设计浅谈
接口的安全性主要围绕Token、Timestamp和Sign三个机制展开设计,保证接口的数据不会被篡改和重复调用,下面具体来看:
OwenZhang
2021/12/08
1.2K0
php接口安全设计浅谈
拒绝接口裸奔!开放API接口签名验证!
为开发者分配AccessKey(开发者标识,确保唯一)和SecretKey(用于接口加密,确保不易被穷举,生成算法不易被猜测)。
java思维导图
2020/09/30
1.9K0
拒绝接口裸奔!开放API接口签名验证!
API接口签名验证,你学废了吗
为开发者分配AccessKey(开发者标识,确保唯一)和SecretKey(用于接口加密,确保不易被穷举,生成算法不易被猜测)。
Java技术精选
2021/08/16
2.7K0
你的接口真的安全吗?
现在互联网开发的框架越来越丰富,大多数的系统架构也都是朝着微服务化,云原生化演进。而且自从中台的概念提出之后,各大公司也开始拆分自己的技术中台,抽离出一些公共的技术服务中台。
leon_橙
2020/09/24
1.5K0
你的接口真的安全吗?
探讨三方接口调用方案设计
三方接口设计是实现系统功能的关键环节。设计一个安全、高效且易于维护的接口调用方案,对于保障系统稳定性、数据安全性和用户体验至关重要。
公众号:码到三十五
2024/11/25
2490
openresty实现接口签名安全认证
一)需求背景 现在app客户端请求后台服务是非常常用的请求方式,在我们写开放api接口时如何保证数据的安全, 我们先看看有哪些安全性的问题 请求来源(身份)是否合法? 请求参数被篡改? 请求的唯一性(不可复制) 二)为了保证数据在通信时的安全性,我们可以采用参数签名的方式来进行相关验证 案例: 我们通过给某 [移动端(app)] 写 [后台接口(api)] 的案例进行分析:      客户端: 以下简称app 后台接口:以下简称api 我们通过app查询产品列表这个操作来进行分析: app中点击查询按
小勇DW3
2020/08/13
2.3K0
相关推荐
公司来了个大神,三方接口调用方案设计的真优雅~~
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档