开放API接口安全设计

article/2025/11/9 14:47:46

前言

随着项目前后端分离的火热,后台开发的重点主要是对外提供接口,那么API接口的安全就是要考虑的问题。前后端分离和传统的开发模式有很大的差异,本文将针对以下问题进行探讨:

  1. 前后分离和传统项目的区别
  2. 为什么前后分离需要关注接口安全问题
  3. 攻击方式有哪些
  4. 如何保障接口的安全

一、前后分离和传统项目的区别

1:前端渲染方式不同

传统项目是前后端不分离的,后端通过模板渲染引擎在后端渲染前端页面然后发送到浏览器展现。不同的语言有不同的模板渲染引擎比如JAVA有jsp、beetl、hanldlebars,PHP有Smarty、Twig、Haml,nodejs有ejs、jade等。然而前后端分离之后前端的渲染工作将交给前端项目自行渲染,后台只通过API接口来提供数据。

2:客户端状态维护方式不同

传统项目通过session来维护后端和客户端的状态,然而前后分离后接口请求(ajax)是无状态请求(当然也可以修改配置来达到有状态,但是这种方式对于分布式部署来说是不可取的,当然配置session共享后也可以达到目的,但是这样对负载均衡有一定的副作用)。前后分离后一般通过token的方式来维护请求状态。

二、为什么前后分离需要关注接口安全问题

接口是通过http请求的方式来请求和获取数据的,这样的请求是可以通过抓包工具来拦截请求的,如果不处理的话会有很大的安全隐患。比如获取短信的接口被拦截那么别人就可以恶意刷你的短信流量,上传文件接口被拦截别人可以恶意上传从而导致服务器崩溃。黑客还可以通过Dos或CSRF来攻击服务器,所以接口安全还是很重要的。

三、攻击方式有哪些

常见的web攻击方式有:XSS、CSRF、SQL注入、DDOS、重放。

XSS(跨站脚本攻击):对所有用户提交内容进行可靠的输入验证对“<”,“>”,“;”,“””等字符做过滤。

CSRF(跨站请求伪造 cross site request forgery):

通过伪装来自受信任用户的请求来利用受信任的网站,可以利用你的身份发邮件、发短信、进行交易转账等,甚至盗取你的账号

例如:你在A网站登录了账号,在没有退出的情况下访问了B网站,B网站有黑客上传的图片且地址为A网站的接口。如果A网站存在CSRF漏洞那么你在B网站时相当于你时A的登录用户,那么B的图片地址请求的接口就被伪造成你的合法请求。

防御:尽量使用POST;cookie设置为HttpOnly;增加token;通过Referer识别。

重放攻击:利用抓包工具将请求重复多次发送的方式来达到攻击服务器的目的。可以通过请求时效性来防御。

四、如何保障接口的安全

1:调用身份认证token(防CSRF攻击)

用户登录时根据用户生成token用来后期识别用户身份

2:参数签名(防篡改)

对appkey(客户端标识),token,url,参数,timestamp,rand进行MD5签名。

请求到达服务器时需要用相同的方法进行签名并和发送过来的签名进行对比,如果不同就说明请求参数被篡改过。

3:时效性(防重放和DDos攻击)

通过timestamp和redis来限制请求的时效

首先根据项目情况设定一个有效时长比如设为60s

当请求到达服务器时首先拿timestamp和系统时间对比,如果在60s内那么timestamp校验通过,如果大于60s那么请求过期。

如果只通过timestamp来防重放那么在60s内还是可以重放请求的,所以这样还是不够的。

我们还需要设置一个nonce。

请求到达服务器时去redis中查找key为nonce:{sign}的string,如果没有就创建这个key并把失效期设置为timestamp的失效期比如是60s,如果有说明在60s内这个请求已经请求过那么这个请求可以判断为重放请求。

因为客户端和服务器的timestamp可能存在误差如果误差大于60s那么所有的请求就都被拦截了,如何解决这个问题呢?我们可以在每个接口返回时都返回一个timestamp,客户端通过这个timestamp来调整本地的timestamp这样timestamp就已服务端为准了。

校验流程图如下:


http://chatgpt.dhexx.cn/article/60mi9EJC.shtml

相关文章

开放接口使用积累

个推(消息推送) 官网: http://www.igetui.com/ Demo 快速入门说明; 步骤: 用自己的开发者账号登陆个推,进入控制界面;在左侧菜单中选择 " 应用管理 > 应用管理 > 登记新应用" 在 "应用名称" 和 "应用标识" 中填入相应内容; 名称随便取,标…

对外开放的接口验证方式

接口安全问题 请求身份是否合法&#xff1f;请求参数是否被篡改&#xff1f;请求是否唯一&#xff1f; AccessKey&SecretKey &#xff08;开放平台&#xff09; 请求身份 为开发者分配AccessKey&#xff08;开发者标识&#xff0c;确保唯一&#xff09;和SecretKey&…

股票交易开放接口是什么意思?

在股票量化市场上&#xff0c;大家可能对股票交易开放接口的意思不太理解&#xff0c;其实换个角度来看&#xff0c;就是关于由开发团队进行开发的股票交易开放接口&#xff0c;那么对于接口的开发原理跟代码是怎么样的呢&#xff1f; 一、股票交易开放接口函数的调用&#xff…

免费开放的API接口 供学习使用

前言 在开发测试阶段&#xff0c;或者是在写Demo的时候&#xff0c;难免会用到一些测试数据&#xff0c;有时苦于没有可用的接口&#xff0c;需要自己动手去写&#xff0c;但是这样大大降低了效率&#xff0c;前期我也找了一些开放的接口&#xff0c;这篇文章整理一下&#xff…

api对外开放接口

一&#xff1a; 对外开放接口如何保正&#xff1a; 请求鉴别用户身份&#xff1f; 请求参数被篡改&#xff1f;请求的唯一性(不可复制) 2 为了防止别人重复使用请求参数问题&#xff0c;我们需要保证请求的唯一性&#xff0c;就是对应请求只能使用一次&#xff0c;这样就算…

淘宝开放平台API接口,接入方案如下

淘宝开放平台是基于淘宝各类电子商务业务的开放平台&#xff0c;提供外部合作伙伴参与服务淘宝用户的各类原材料&#xff0c;如业务API、账号体系、数据推送&#xff0c;奇门网关等&#xff0c;是淘宝电子商务基础服务的重要开放途径。即淘宝把数据开放进来&#xff0c;第三方软…

开放平台API接口

某宝开放平台&#xff08;Taobao Open Platform&#xff09;是基于各类电子商务业务的开放平台&#xff0c;提供外部合作伙伴参与服务用户的各类原材料&#xff0c;如业务API、账号体系、数据推送&#xff0c;奇门网关等。它是大电子商务基础服务的重要开放途径&#xff0c;将推…

word中怎么做思维导图,思维导图怎么画

谈及Word软件,你一定不会陌生,因为它已成为个人和企业电脑的标配软件,也是每一位电脑使用者必会的一款应用。我们时常需要使用Word处理文本相关的内容,比如文章编辑、排版和打印。 在软件中,我们可以添加文字、图片、表格和思维导图等等,但并非所有的功能都那么易用。特别…

思维导图模板怎么制作?提供几种思路

思维导图是一种非常有用的图形化思维工具。它可以帮助我们更好地组织、整理和表达头脑中的想法。在学习中&#xff0c;思维导图可以帮助我们更好地理解和记忆知识点。在工作中&#xff0c;使用思维导图可以更好地规划和管理项目。在生活中&#xff0c;思维导图可以帮助我们更好…

大学生活该如何度过?思维导图告诉你

转眼开学已经一个多月,很多才跨入大学门槛的新生,打算怎么度过这段精彩的大学生活呢?是打算和室友在寝室开黑厮杀于召唤师峡谷;还是谈一场轰轰烈烈的恋爱;再或者是沉浸在阅览室默默提升自己…不管你作何选择,在面对迷茫的未来的四年生活时,做好一个统筹安排是很重要的,…

亿图思维导图软件MindMaster Mac版常用快捷键汇总

亿图思维导图软件MindMaster Mac版是亿图软件最新推出的一款免费跨平台、多功能的思维导图软件。那么该软件有哪些常用的快捷键呢&#xff1f;小编为大家总结整理了MindMaster实用快捷键汇总&#xff0c;来学习一下吧&#xff01; 键盘快捷键 可以在帮助选项卡上找到键盘快捷键…

SimpleMind Pro 1.29.1 小巧的思维导图工具

Mac毒搜集到的SimpleMind是macOS上一款思维导图工具&#xff0c;这款工具非常小巧&#xff0c;完全可以取代笨重的MindManager&#xff0c;对Mac开发者来说称得上是一大福音了。 应用介绍 SimpleMind是macOS上一款思维导图工具。思维导图可帮助您整理想法、记忆事物并形成新的…

计算机网络——网络层——思维导图

———————— 思维导图下载地址 ———————— 网络层的功能 1.1. 异构网络互联 1.1.1. 将两个以上的计算机网络&#xff0c;通过一定的方法&#xff0c;用一种或多种通信处理设备&#xff08;即中间设备&#xff09;相互联接起来&#xff0c;以构成更大的网络系统。…

计算机网络思维导图(零基础--思维导图详细版本及知识点)

第一章 计算机网络概述 1、计算机网络向用户提供的最重要的功能分别是&#xff08;连通性&#xff09;和&#xff08;共享&#xff09;。 2、网络由若干&#xff08;结点&#xff09;和链接这些&#xff08;结点&#xff09;的&#xff08;链路&#xff09;组成。 3、网络把许…

网络通信的思维导图

网络通信的思维导图 传输路径&#xff1a;PC->交换机->路由器->路由器->交换机->PC 交换机&#xff1a;根据目标MAC做转发&#xff0c;没有MAC的则转发所有端口。 路由器&#xff1a;根据目标IP做转发&#xff0c;自己没有就发给上层路由器。

MindManager2021最新版本win/mac思维导图工具 新增功能

这一期&#xff0c;小编为大家推荐一款非常良心的思维导图工具-MindManager2021&#xff0c;它非常的强大和高效&#xff0c;可以将你的想法随时随地以图形化的方式快速地展现在你的面前。它已经广泛应用于各行各业&#xff0c;渗透性非常的强&#xff0c;相信它可以给你的职业…

linux软件包管理思维导图,推荐五款管理工具(思维导图)

一.幕布: 幕布 幕布(mubu.com)是坤豆科技旗下第一款产品&#xff0c;是一款头脑管理工具,用更高效的方式和清晰的结构来记录笔记、管理任务、制定工作计划、头脑风暴。 官网:https://mubu.com/ 1.使用平台 使用平台 2.推荐理由 (1)文本和思维导图无缝切换 (2).高效管理个人生活…

横向对比22款思维导图工具,最好用的我觉得是这款!

思维导图是什么就不用说明了吧&#xff1f;总之今天就来谈谈这东西 且不说思维导图对记忆有没有帮助&#xff0c;但在整理思路这件事上&#xff0c;绝对是有帮助的&#xff01; 阿虚平常无论是想选题&#xff0c;列清单&#xff0c;列计划什么的&#xff0c;都经常有用到 那…

大学计算机课思维导图,快速记忆和理解大学计算机思维导图

1946年2月14日&#xff0c;世界上第一台计算机诞生于美国宾夕法尼亚大学&#xff0c;随后计算机技术在短短几十年内蓬勃发展。起初计算机是为了运用于军事上&#xff0c;然后随着科技的进步&#xff0c;计算机即电脑&#xff0c;应用到每个人的身边。不难发现&#xff0c;计算机…

思维导图配色指南

色彩&#xff0c;在思维导图上是一种锦上添花的元素&#xff0c;除了让画面看起来更加赏心悦目&#xff0c;它也是反映思维发散性和层次性的重要指示。今天就教大家如何用漂亮的色彩搭配来装点自己的思维导图。 //色彩的基础知识// 关键词&#xff1a;色相&#xff0c;饱和度&…