微信接口請求次數_接口簽名驗證常用方案

前面的文章說了接口數據如何獲取,今天就來聊聊接口數據的安全問題。說到接口加密驗證,通常都稱作“簽名”,類似于名人的個性簽名,讓其它人無法模仿。比如說請求接口刪除自己寫的文章,又或者請求接口查詢自己的帳單明細。被抓到接口地址,然后隨便改動下參數,豈不是就能隨意刪除別人的文章或者得到別人的帳單明細了。通常接口簽名,就是在接口請求時加上一條簽名參數,來讓后臺識別“身份“。

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.pswp.cn/news/273249.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/273249.shtml
英文地址,請注明出處:http://en.pswp.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;使…