电商API接口|电商平台使用的物流API的安全风险

图片

电子商务平台的物流 API 如果出现安全漏洞,则消费者的个人信息会被大量暴露。

物流 API 整合了企业和第三方供应商之间的数据和服务,以解决各种市场需求。如果 电商API 接口集成不当,可能会出现泄露个人身份信息 (PII) 的风险。许多使用 API 通信的垂直行业应该得到足够的保护,尤其是在传输敏感数据时。否则,无意的 PII 泄漏不仅会对未能履行其法律或合规义务的组织造成严重后果,也会对暴露 PII 的消费者造成严重后果。

什么是外部物流供应商?

外部物流供应商说白了就是商家用来交付产品的快递服务(第二方物流或 2PL),也可以是由仓储、电商平台和交付产品组成的第三方物流 (3PL) 服务。下图显示了外部物流提供商在不同用例中的工作方式。

图片

外部物流提供商如何在不同用例中发挥作用

最初,研究人员调查了通过不安全的方法无意中暴露PII的3PL和4PL提供商。但随着研究的深入,我们也发现,除了 3PL 和 4PL 提供商会暴露敏感信息外,已经集成到其系统中的服务也存在自身的安全漏洞,从而加剧了整个电子商务生态系统的风险。电子商务平台允许商家通过 API 整合现有的外部物流提供商,将不同的服务整合到一个平台中。电子商务平台和物流提供商共享的 API 密钥和身份验证密钥旨在促进一个安全的通信渠道。

PII是如何从电子商务和物流API实现中泄露的?

PII 从物流 API 实施中暴露的方式有很多,这些方式与不安全的编码做法相关。

URL查询参数

不经意间暴露PII的一个编码做法涉及电子商务平台和物流API 中的 URL 查询参数。电子商务平台通常要求客户登录帐户或选择访客结帐选项。一些在线购物网站使用他们通过电子邮件或短信发送给用户的唯一 URL,将他们重定向到可以访问订单信息的网站。

将发送到收件人拥有的电子邮件地址或电话号码的唯一URL的组合使用足以保护PII的假设是有问题的,因为这会产生错误的安全感。研究表明,未经授权的各方仍然可以通过直接访问URL来检索客户的PII,而不需要进一步的身份验证。

URL参数中的身份验证密钥

当消费者在在线商店下订单时,商店会向他们发送一封确认电子邮件,其中包含 URL 链接和 URL 参数上的身份验证密钥,以查看订单详细信息。此密钥用于验证检查订单页面的用户是否是电子邮件的收件人。订单页面包含客户姓名、电子邮件地址、电话号码和付款方式等信息。

图片

尽管没有正确的身份验证,但仍然显示客户的PII

将身份验证密钥作为 URL 参数的一部分传递的做法可能会泄漏 PII,因为这些密钥仍然可以使用其他方式检索,例如访问用户的浏览历史记录和路由器日志。使用未加密的 URL 查询参数使 PII 容易受到嗅探和中间人攻击。

未经身份验证的 3PL API

虽然在线零售商使用的 3PL 服务的基本组件包括订单处理、运输和跟踪,但我们还发现 3PL 提供商的 API(在下图中称为 X 公司)通过未经身份验证的 API 服务披露 PII。其他四家 3PL 提供商正在使用此 API 服务来显示客户的订单信息。

图片

四家 3PL 公司使用另一家 3PL 公司的 API 检索订单和跟踪信息

当我们通过四个 3PL 提供商中的一个提供的 URL 链接检查订单信息页面,并检查为查看订单详细信息而发出的 HTTP 请求时,研究人员发现他们正在查看的页面正在后台向另一个 3PL 发出 HTTP 请求供应商获取订单详情。

图片

从 API 请求中检索到的数据显示了完整的客户信息集

研究人员仔细检查了订单信息页面 URL 的参数。其中一个在后台发出的 API 请求使用未经身份验证的方法来验证 API 请求,该请求返回了有关客户和所购买商品的完整信息集。因此,任何有权访问订单信息 URL 的人都可以重建 URL 以检索客户的 PII。

过期设置超过建议持续时间的会话和 cookie

另一种不安全的编码做法是某些 3PL 提供商使用会话和 cookie 的过期日期设置不当。我们观察到许多 3PL 提供商不遵守特定于使用会话和 cookie 来规范身份验证的最佳安全做法的实例。此方法是开放 Web 应用程序安全项目 (OWASP) 推荐的最佳做法之一,尽管会话生存时间 (TTL) 应始终在事务完成后或用户退出连接后立即过期。攻击者可以使用检测到的 cookie 密钥来重放交易并获取 PII,他们可以利用这些 PII 来启动恶意计划。

该列表显示了过期日期设置超过 OWASP 建议的持续时间的 cookie,从而使 cookie 信息可供攻击者重播交易

解决不安全编码做法的安全建议

泄露的 PII 的诱惑、其潜在的恶意用途以及 API 在电子商务中发挥的关键作用,都强有力地证明了利益相关方需要采用一种审慎的方法来确保物流API实现的安全性。

以下是如何改进编码做法的一些建议。

1.会话和cookie过期

会话过期决定何时终止会话与服务器的经过身份验证的连接。默认情况下,该时间设置为一天,或者会话在用户停止与网站的连接后终止。相同的机制适用于 cookie 过期。一旦用户不再在网站上执行任何操作,应激活会话超时,以防止重复使用过期的 cookie。

2. 过多的数据暴露

当暴露超出事务要求的数据时,就会发生过多的数据暴露。一些开发人员实现发送交易的所有信息,而不是完成交易所需的信息。这会造成数据暴露给具有访问限制或有限权限的帐户的情况。物流API泄露的数据可能被用于诈骗或欺诈。

图片

从 API 响应中暴露过多信息

开发人员应采用识别交易所需的重要客户信息并对其风险级别进行分类的做法。

3. 破坏对象级授权

对象级授权通常在编码阶段实现,它是一种访问控制策略,用于确保只有经过授权的用户才能访问对象。对象级授权检查应该在接收对象ID并对对象执行任何类型操作的每个API端点中实现。这些测试确保已登录的用户具有对所请求对象执行操作的权限。

在处理PII时,更安全的做法是加密数据并在授予访问权之前要求用户身份验证。当使用3PL API集成时,在与3PL相关供应商共享PII时,应该充分保护PII。有许多不同的身份验证算法可用于保护API事务。令牌如JSON Web令牌(JWT)或使用使用salt编码的base64生成的自定义令牌对于保护API调用是必不可少的。

总之,开发人员应牢记在整个交易过程中应提供哪些数据以及应采取哪些身份验证措施。

给电商平台用户的安全建议

消费者在最大限度地降低 PII 暴露风险方面发挥着同样重要的作用。以下安全做法可以帮助他们保护 PII 的安全:

1.正确处置发货信息,并确保带有 PII 的标签被撕碎或混淆,这样攻击者就无法再阅读它们。

2.删除浏览历史记录,尤其是在公共或共享设备上。

3.避免将未知浏览器扩展安装到可以读取和收集未加密 URL 查询字符串的 Web 浏览器。

4.在公共 Wi-Fi 网络上使用合法的虚拟专用网络 (VPN) 以减少个人数据的暴露。

5.对电子商务平台和其他需要用户输入 PII 的网站实施双因素或多因素身份验证。

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

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

相关文章

京东商品详情API接口(item_get-获得JD商品详情)电商领域的重要角色

电商API接口在电商领域中扮演着重要的角色,它们为电商平台提供了许多功能和便利。以下是电商API接口的一些主要用途: 商品信息查询:通过API接口,第三方开发者或商家可以查询电商平台上的商品信息,包括商品详情、价格、…

Spark六:Spark 底层执行原理SparkContext、DAG、TaskScheduler

Spark底层执行原理 学习Spark运行流程 学习链接:https://mp.weixin.qq.com/s/caCk3mM5iXy0FaXCLkDwYQ 一、Spark运行流程 流程: SparkContext想西苑管理器注册并向资源管理器申请运行Executor资源管理器分配Executor,然后资源管理器启动Ex…

系列十四、理解MySQL varchar(50)

一、理解MySQL varchar(50) 1.1、概述 日常开发中,数据库建表是必不可少的一个环节,建表的时候通常会看到设定某个字段的长度为varchar(50),例如如下建表语句: 那么怎么理解varchar(50)?这个分情况的,MySQ…

静态路由、代理ARP

目录 静态路由静态路由指明下一跳和指明端口的区别代理ARP 我们知道,跨网络通信需要路由 路由有三种类型: 1.直连路由。 自动产生的路由,当网络设备连接到同一网络时,他们可以自动学习到对方的存在。自动学习相邻网络设备的直连信…

用通俗易懂的方式讲解:使用 Mistral-7B 和 Langchain 搭建基于PDF文件的聊天机器人

在本文中,使用LangChain、HuggingFaceEmbeddings和HuggingFace的Mistral-7B LLM创建一个简单的Python程序,可以从任何pdf文件中回答问题。 一、LangChain简介 LangChain是一个在语言模型之上开发上下文感知应用程序的框架。LangChain使用带prompt和few…

盛元广通实验室业务流审批管理系统2.0

系统通过对取样、分析、数据处理、检验报告等分析全过程中多种影响因素的有效管理,强化检验质量,获得准确可靠的分析成果。业务流审批管理系统主要包括了检测管理、业务受理、样品管理、资源质量管理、分包管理、报告生成、统计分析等,系统能…

7N65-ASEMI高压NPN型MOS管7N65

编辑:ll 7N65-ASEMI高压NPN型MOS管7N65 型号:7N65 品牌:ASEMI 连续漏极电流(Id):4A 漏源电压(Vdss):650V 栅极阈值电压:30V 单脉冲雪崩能量:150mJ 集电极电流(脉冲&#xff…

网络安全B模块(笔记详解)- 网络爬虫渗透测试

LAND网络渗透测试 1.进入虚拟机操作系统:BT5中的/root目录,完善该目录下的land.py文件,填写该文件当中空缺的Flag1字符串,将该字符串作为Flag值(形式:Flag1字符串)提交;(land.py脚本功能见该任务第6题) 输入flag sendp(packet) Flag:sendp(packet) 2.进入虚拟机操作…

关键字、标志符、变量、基本数据类型

1、关键字 1.1、定义 定义:被JAVA语言赋予了特殊含义,用作专门用途的字符串(或单词) 特点:全部关键字都是小写字母 上源码: 代码中定义类的关键字class,定义一个订单控制器类 ​​​​​​​…

用Java爬取新房二手房数据看总体大环境

都说现在房市惨淡,导致很多人在观望,那么今天我写一段爬虫,主要是抓取各地新房以及二手房成交状况,然后了解总体楼市是否回暖上升。 以下是Java爬虫程序的代码示例,用于抓取贝壳网新房和二手房数据: impor…

污水处理成套设备如何选择

污水处理是现代社会中不可或缺的一个重要环节,它涉及到环保领域,与人们的生活和健康息息相关。而污水处理成套设备的选择则显得尤为重要,因为合适的设备能够有效地解决水污染问题,提高环境质量。 在选择污水处理成套设备时&#x…

Python绘制茎叶图:plt.stem

文章目录 简介参数演示 简介 茎叶图从外观来看,更像是火柴,由基线、茎线、茎头三部分构成。最简单的示例如下 import numpy as np import matplotlib.pyplot as plt plt.stem(np.sin(np.arange(10))) plt.show()参数 stem的完整参数如下 stem([locs,…

【C++】- 类和对象(构造函数!析构函数!拷贝构造函数!详解)

类和对象② 类的6个默认成员函数构造函数析构函数拷贝构造函数 类的6个默认成员函数 上一篇详细介绍了类。如果一个类中什么成员都没有,简称为空类。 那么空类中真的什么都没有吗? 并不是,当类在什么都不写时,编译器会自动生成…

SQLServer设置端口,并设置SQLServer和SQLServer Browser服务

SQLServer默认使用动态端口,即每次启动sqlserver.exe时,端口port都会动态变化。若要使用静态端口,比如port1433,则需要在SQL Server Configuration Manager(简称SSMS)里配置。这里以SQL Server 2005 Configuration Man…

安科瑞有序充电运营场站落成-安科瑞 蒋静

今年6月,发布了《关于进一步构建高质量充电基础设施体系的指导意见》,提出到2030年基本建成高质量充电基础设施体系,以支撑新能源汽车产业的发展和满足人民群众的出行充电需求。7月底,国家部门印发了《关于促进汽车消费的若干措施…

应对 DevOps 中的技术债务:创新与稳定性的微妙平衡

技术性债务在DevOps到底意味着什么?从本质上讲,这是小的开发缺陷的积累,需要不断地返工。它可能由多种原因引起,例如快速交付新功能的压力,这可能会导致团队不得不牺牲代码的整洁和完善。但这些不完整的小代码&#xf…

Qt - QML框架

文章目录 1 . 前言2 . 框架生成3 . 框架解析3.1 qml.pro解析3.2 main.cpp解析3.3 main.qml解析 4 . 总结 【极客技术传送门】 : https://blog.csdn.net/Engineer_LU/article/details/135149485 1 . 前言 什么是QML? QML是一种用户界面规范和编程语言。它允许开发人员…

桌面图标变成白色文件?学会这4个方法,轻松解决!

“不知道为什么,我有些文件夹直接保存在电脑桌面了,但是今天查看的时候却发现它们变成了白色的文件。有什么方法可以解决这个问题吗?” 在使用电脑时,可能由于各种原因,会出现桌面图标变成白色文件的情况。这不仅会让用…

docker安裝gocd-server,并配置gitlab授权登录

gocd的地址:Installing GoCD server on Windows | GoCD User Documentation gocd文档:GitHub - gocd/docker-gocd-server: Docker server image for GoCD 一、docker拉取gocd镜像 #拉取server镜像 docker pull gocd/gocd-server:v21.1.0docker pull g…

isaacgym(legged_gym)学习 (二)—— 设置环境地形

isaacgym(legged_gym)学习 (二)—— 设置环境地形 文章目录 isaacgym(legged_gym)学习 (二)—— 设置环境地形前言一、了解isaacgym中地形如何构成的二、自定义修改1.代码2.查看script/play.py 总结 前言 如何设置isaacgym中的环…