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

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

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),所以出于这…

mysql010函数使用.单行函数.多行函数

-- 函数使用 -- 1.单行函数 执行QSL语句时候 分别产生了一条记录影响的是多行。 -- 2.多行函数 执行QSL语句时候 只产生一条结果 -- 自己理解:多行函数,就是需要多条数据才能执行的结果。 -- max() min() sum() avg() count() SELECT ENAME,LOWER(E…

JS在线压缩

http://dean.edwards.name/packer/转载于:https://www.cnblogs.com/fery/p/4531804.html

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…

poj1969---找规律

题意&#xff1a;按照s型分别给数编号&#xff0c;给 #include <stdio.h> #include <stdlib.h>int main() {int n;while(scanf("%d",&n) ! EOF){int s0,k1;while(1){sk;//统计个数&#xff0c;当前几斜线和大于了规定的序号&#xff0c;说明此时该数…

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

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

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

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

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

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

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

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

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

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

[转]jQuery源码分析系列

文章转自&#xff1a;jQuery源码分析系列-Aaron 版本截止到2013.8.24 jQuery官方发布最新的的2.0.3为准 附上每一章的源码注释分析 &#xff1a;https://github.com/JsAaron/jQuery 正在编写的书 - jQuery架构设计与实现 本人在慕课网的教程&#xff08;完结&#xff09; jQue…

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

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

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

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

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

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

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

一个编辑器具备的功能一个编辑器(例如Windows中的记事本)具备的功能&#xff1a;打开文件、新建文件、保存文件光标移动文本编辑(多行间|多列间)复制、粘贴、删除查找和替换vi编辑器的环境设置为了更方便的使用vi编辑器&#xff0c;我们需要先对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.…

JAVA中通过时间格式来生成唯一的文件名

有时候我们需要截图&#xff0c;在要截图时&#xff0c;有人用到了时间格式&#xff0c;但是时间格式中的:在文件名称中是不被允许的字符&#xff0c;所以就会报错&#xff0c;如何生成唯一的时间文件名&#xff1a; package com.demo;import java.text.ParseException; import…

python返回字符串长度的函数_Python如何查找字符串的长度?(代码示例)

在Python中字符串是Unicode代码点的不可变序列。给定一个字符串&#xff0c;我们如何查找它的长度&#xff1f;本篇文章就来给大家介绍在Python中查找字符串长度的四种方法&#xff0c;希望对大家有所帮助。【相关视频教程推荐&#xff1a;Python视频教程】方法一&#xff1a;使…