17、API 客户端开发关键技术解析

API 客户端开发关键技术解析

1. 验证传入数据

在创建 API 客户端时,处理传入消息是一项重要任务。因为每个服务响应在被证明安全之前,都可能包含恶意数据、可执行脚本或不良数据,会导致客户端应用程序异常。所以,拥有安全处理传入负载的策略对于构建成功的 API 生态系统至关重要。

1.1 问题

客户端应用程序如何确保传入消息不包含危险或恶意内容?

1.2 解决方案

API 客户端应用程序应仔细检查传入消息(服务响应),并移除或忽略任何危险内容。在编写客户端应用程序代码时,可以遵循以下基本原则:
- 始终过滤传入数据。
- 采用“允许列表”模型而非“拒绝列表”来批准内容。
- 为所有数据值维护“最小值/最大值”范围,并拒绝超出该范围的任何数据。

此外,客户端应用程序还有另外两道防线:语法验证(基于预期的数据类型)和语义验证(基于该数据类型的预期值)。例如,邮政编码、电话号码、个人身份号码等复杂类型都需要进行语法验证。客户端应用程序应能够识别何时需要这些类型的数据,并知道如何验证其结构。

API 客户端应秉持“不惜一切代价保护自己,甚至拒绝处理请求”的原则,这与 Postel 定律(健壮性原则)有所不同,但有其合理性。客户端应只关注已知的内容值,确保这些值合理,并仅对这些字段执行预定操作。

客户端应用程序还应尽力验证消息内容的语义值。例如,当提供日期范围(如 startDate 和 stopDate)时,必须验证 startDate 的值早于 stopDate 的值。

1.3 示例

Collection

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值