微信接口请求次数_接口签名验证常用方案

前面的文章说了接口数据如何获取,今天就来聊聊接口数据的安全问题。说到接口加密验证,通常都称作“签名”,类似于名人的个性签名,让其它人无法模仿。比如说请求接口删除自己写的文章,又或者请求接口查询自己的帐单明细。被抓到接口地址,然后随便改动下参数,岂不是就能随意删除别人的文章或者得到别人的帐单明细了。通常接口签名,就是在接口请求时加上一条签名参数,来让后台识别“身份“。

1.0 最简单的, 直接带上密钥

一些接口资源网站,对于免费用户就提供了这种签名方式。要求每次请求数据时带上预先提供的密钥。比如 www.testapi.com/date/list/json,在请求时参数里加上 sign=iamlilei。这种方式是相当LOW的,防御力相当于0。提供接口的人根本就没打算安全验证,加上签名只是为了方便统计接口使用次数以方便计费。

a52c51adc73b314401d63fae26f93218.png

2.0 升级版, 隐藏id,改用token

最开始说了,如果是删除内容的接口,参数中就肯定有文章编号,用户身份的标识。如果使用id这种数字形式的参数,很容易被冒用。但是如果给用户创造一个复杂的名字,比如’asdfWEkKjH788J’这种字母加数字加大小写加特殊字符的形式,相信没人猜得出规律了。即使被人抓到接口地址,他也改不了其它用户的数据。但是有些资源类的接口,比如获取最新新闻,最新天气等,这类接口就不存在身份了,怎么防止别人免费使用你的接口呢!

4030f690ac5003e4d5dec1afc2e26c18.png

3.0 定时更新token

用户身份是固定的,但token是可以经常更新,签名是和用户身份绑定的,请求时也要带上。这样别人无法掌握你最新的密钥,自然也无法使用了。目前,这种签名是最普遍的,比如微信公众号各种认证都是用的这种方式。

62ee17eeed09fcb8e35f496cb22331d4.png

4.0 加密签名

通常我们做到第三步,效率高,安全度也可以。但是,非要找一个不会被冒用接口的方法。肯定也是有的,就是加密签名。首先,服务端提供给客服端一串密钥,类似token.请求接口时,我们不发送token,而是先把token与当前时间戳拼接并使用md5等固定的算法加密成sign参数,然后把时间戳与sign添加到请求参数里。这样服务收到请求后,同样把用户对应的token和时间戳拼接再加密,最后做判断是否一致。当然,时间戳肯定是有时效的,可以设置成3秒。使用这样的方式,不透露密钥,不透露加密算法,是很难被冒用的。

f005c322801fa63d2453281e7280488f.png

总结

学术的东西,没有最好,只有更好。具体使用哪种方式还需要针对具体的场景。如果只是在后端使用可以使用最简单的方式。但是涉及到用户数据,那就要防范了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/273249.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql009模糊查询like.是否为null

-- 创建EMP表 CREATE TABLE EMP ( EMPNO int(4) PRIMARY KEY, ENAME VARCHAR(10), JOB VARCHAR(9), MGR INT(4), HIREDATE DATE, SAL DOUBLE(7,2), COMM DOUBLE(7,2), DEPTNO INT(2) ); -- where查询 语句 SELECT * from emp; -- 模糊查询 -- 搜索emp表中还有A的…

28335接两个spi设备_SPI浅析

01 SPI简介SPI,全称为Serial Peripheral interface,即串行外围设备接口。由摩托罗拉率先在产品上使用。SPI是一种高速全双工,同步(full duplex synchronous)的通信总线协议,且占用硬件端口只有4个(SO,SI, SCLK 和CSN),所以出于这…

java mongo 获取所有数据库_Spring Batch —从XML读取并写入Mongo

Java面试必备之JVMGC教程这几天闲着在优锐课的java学习必备中学习了,在本文中,了解如何使用Spring Batch通过StaxEventItemReader使用ItemReader读取XML文件并将其数据写入NoSQL。在本文中,我们将向展示如何使用Spring Batch使用StaxEventIte…

001多表查询.交叉链接cross JOIN.自然链接natural JOIN.using链接.on链接

-- 需求:查询每一个员工信息,并且显示每一个员工所在的部门名称 -- mysql中多表查询有四种,交叉链接cross JOIN,自然链接natural JOIN,using链接,on链接 -- 交叉链接cross JOIN SELECT * FROM emp; --6…

华菱重卡仪表指示说明_新一代创虎重卡登场!LNG车型将配玉柴燃气发动机

2020年10月23日,现代商用车新一代创虎重卡正式发布,此次新车不仅外观与韩国本土同步,更是首次搭载了国产玉柴动力,推出了LNG版车型。具体情况我们先抢先看看吧!外观升级 与韩国本土同步我们可以看到,相比此…

mysql002多表查询.on链接分为三种情况,左链接,右链接,全链接

-- on链接(最实用),分为三种情况,左链接,右链接,全链接 -- 左外链接,左表全部显示,如果匹配不到右表的内容使用null代替。 SELECT * FROM emp e LEFT JOIN dept d ON e.DEPTNOd.DE…

x轴z轴代表的方向图片_游戏中到底是Z轴朝上还是Y轴朝上?

本文转自我的公众号——游戏开发那些事在谈到游戏世界中的坐标轴时,我们经常会看到这样的争论。“游戏中Y轴是向上的好么?这你都不知道?”“不对,空间直角坐标系不就是Z轴向上的么?”“拜托,请搞清楚坐标系…

补发《超级迷宫》站立会议三

那天我给自己的任务是实现控件的控制,但结果明显很不理想,我仅仅加载了两个控件(即两个小人),一个是玩家,另一个是守关者,玩家控制基本实现,通过方向键进行控制;但守关者…

mysql003三表查询.三表查询.自链接查询

-- 多表查询 三表查询 -- 查询员工的编号,姓名,薪水,部门编号,部门名称,薪水等级 -- 可以先两表查询,在修改成三表查询 -- 第一行查询的内容,第二,三行查询需要的表, -- 和条件…

hook xposed 自定义类_【开始学习React Hook(1)】Hook之useState

react hook是react推出的一种特殊函数。这些函数可以让你在不创建react class的情况下依然可以使用react的一些特性(诸如目前react的钩子函数拥有的所有特性)。最常用的hook有useState, useEffect, 日常开发使用这两个就足够了。如果再懂点useReduer, us…

mysql004子查询.相关子查询.不相关子查询

子查询:相关子查询,不相关子查询 -- 不相关子查询 -- 一条SQL语句含有多个select,先执行子查询,在执行外部查询。子查询可以独立运行,成为不相关子查询。 -- 需求1:查询所有比姓名为“CLARK”工资高的员工的信息。 …

文件无刷新上传(swfUpload与uploadify)

文件无刷新上传并获取保存到服务器端的路径 遇到上传文件的问题,结合之前用到过的swfUpload,又找了一个无刷新上传文件的jquery插件uploadify,写篇博客记录一下分别介绍这两个插件的实现方法 swfUpload 导入swfUpload的开发包 添加js引用&am…

ediplus 复制编辑一列_vi编辑器的使用详解

一个编辑器具备的功能一个编辑器(例如Windows中的记事本)具备的功能:打开文件、新建文件、保存文件光标移动文本编辑(多行间|多列间)复制、粘贴、删除查找和替换vi编辑器的环境设置为了更方便的使用vi编辑器,我们需要先对vi编辑器进行一些配置。打开虚拟…

myjdbc链接数据库.增删改查

-- 创建user表 CREATE TABLE user( uid int PRIMARY KEY auto_increment, uname VARCHAR(55), pwd VARCHAR(55), realName VARCHAR(55) ) SELECT * FROM user; Jdbc增删改查 package myjdbc; import java.sql.Connection; import java.sql.DriverManager; import java.…

K-means算法和矢量量化

语音信号的数字处理课程作业——矢量量化。这里采用了K-means算法,即假设量化种类是已知的,当然也可以采用LBG算法等,不过K-means比较简单。矢量是二维的,可以在平面上清楚的表示出来。 1. 算法描述 本次实验选择了K-means算法对数…

jdbc.properties文件

drivercom.mysql.cj.jdbc.Driver (//主机:端口号、数据库名)urljdbc:mysql://localhost:3306/mydb?useSSLfalse&useUnicodetrue&characterEncodingutf8&serverTimezoneAsia/Shanghaiusername(链接的用户)passwd(密码)

ifix如何设画面大小_如何让你的视频又小又清晰?视频编码输出软件来了

如何让视频保持清晰同时又让其体积尽可能的小?这是很多小伙伴们都很头疼的问题而且很多时候我们需要会在微信或者朋友圈等社交平台上传我们的作品但它们对视频大小有着比较严格的控制所以蜜蜂菌就为大家带来了视频压缩神器小丸工具箱帮助你轻松压缩出又小又清晰的视…

智能集群理论优化控制_探索群体智能的奥妙——ROB-MAS多智能体协作

人类对未知领域总是充满好奇和敬畏。因为好奇,所以不断探索,因为敬畏,所以小心谨慎。谈到人工智能,已经不仅仅是停留在智能手机、家用电器这个层次,要知道,人工智能的作用,不仅仅是为了方便生活…

mybatis.xml文件

mybatis.xml <?xml version"1.0" encoding"UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration>&l…

note同步不及时 one_朱海舟回应锤子便签同步不及时:工程师已经解决

集微网消息(文/数码控)&#xff0c;有不少网友反映自己用的锤子便签没法及时同步数据&#xff0c;对此锤子科技产品经理朱海舟回应称工程师已经把该问题解决&#xff0c;用户只需更新APP即可。至于部分安卓用户无法同步锤子便签数据的问题&#xff0c;也很好解决&#xff0c;只…