阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

处理 REST 服务安全

  • 2010-04-06
  • 本文字数:1203 字

    阅读完需:约 4 分钟

随着安全成为了 SOA 实现的主要宗旨之一,以及 REST 迅速成为流行的 SOA 实现方案之一,关于 REST 安全成为了及时的话题。根据 Chris Comerford 以及 Pete Soderling 的说法,REST 开发对于安全的处理还不够:

  • REST 没有预定义的安全方法来让开发者定义它们自己的,同时
  • 通常,开发者急于得到…所部署的服务并不像对待 web 应用一样用同样的勤劳对待他们。

Comerford 与 Soderling 继续进行了解释,因为 REST 是基于 HTTP 的,而 REST 服务有跟标准的 web 应用一样的容易受攻击的倾向。包括被破坏的验证,注入攻击,跨站点的脚本以及跨站点的请求伪造。此外,REST 服务还有其独特的安全弱点,例如:

  • Mashup 相关的问题: > …一个从多个 API 拉取数据的 mashup 可能会要求用户名和密码。而验证终端用户的授信取决于 mashup 的提供者。终端用户必须相信 mashup 的提供者不会偷窃 (或者由于疏忽而泄露) 他们的授信,而 API 的提供者也必须相信 mashup 的提供者可以审核和验证这一用户的帐号,不是一个黑客或者恶意的用户。
  • 不成熟的草根协议: > OAuth 1.0…容易遭受会话完成攻击,并且可能造成让攻击者盗取 API 终端用户个人身份的结果。

幸运的是,许多 HTTP 安全实践都可以有效的应用于 REST 服务,Comerford 和 Soderling 推荐遵循如下的几条规则:

  • 为你的 API 启用其它任何你的组织已部署的 web 应用同样的安全机制。比如说,如果你在 web 前端过滤 XSS,你必须对你的 API 也这样做,最好是使用同样的工具。
  • 不要使用你自己的安全。使用那些被互审过测试过的框架或现有的包…
  • 除非你的 API 是一个免费的,只读的公开 API,否则不要使用单一的基于密钥的验证。这不够,需要加上密码要求。
  • 不要放过未加密的静态密钥。如果你使用基本的 HTTP 并且在线路上发送的,请加密。
  • 理想的情况下,使用基于哈布的消息验证码 (HMAC),因为它最安全。

K. Scott Morrison 进一步阐释了与 REST 安全相关的事务:

REST 缺乏良好表达的安全模型…由于它草根的天性,在安全方面往往受到忽视——“像 web 一样做就好了”,这样当然没有任何好处…REST 风格的流行要归因于它的简单和快速实现,特别是当面对让人兴趣全无的复杂性以及对工具要求极高的 WS-* 栈的时候。可以想象得到为了向完成应用而全力冲刺,安全相关的问题自然而然的就被忽视或者完全忘掉了。

Morrison 同时再次肯定了 REST 服务可以做到安全,并且展示了 Comerford 以及 Soderling 的部分推荐可以如何利用 SecureSpan 网关来实现,通过配置策略,可以保证对于服务的访问要求使用基于组成员 SSL 以及授权服务访问。此外,SecureSpan 可以配置而实现扫描跨站点,PHP 以及 shell 注入攻击。

REST 不像 WS* 那样指定了定义良好的专为 web 服务构建的独立于协议的安全模型,目前它并没有自己的安全模型。作为代替,现在的 REST 安全最佳实践是利用了现有的 HTTP 安全实现方案。这是否够用呢?只有时间知道答案。

查看英文原文: Dealing with REST Services Security

2010-04-06 12:577073
用户头像

发布了 133 篇内容, 共 34.9 次阅读, 收获喜欢 1 次。

关注

评论

发布
暂无评论
发现更多内容

车联网 CAN Bus 协议介绍与数据实时流处理

EMQ映云科技

物联网 mqtt canbus

一定要看的前端codeReview规范指南

快乐非自愿限量之名

前端 技术框架

香港云主机为你的业务注入强大的云端动力!

一只扑棱蛾子

香港云主机

玖章算术与百度智能云达成合作,「NineData SQL 开发」成为百度智能云主推的数据库工具

NineData

数据库 百度智能云 云市场 玖章算术 NineData

华为云CodeArts TestPlan测试设计:守护产品开发质量之魂

华为云PaaS服务小智

云计算 软件开发 华为云 产品测试

如何使用 Terraform 和 Git 分支有效管理多环境?

SEAL安全

git Terraform

低代码会是开发者的可选项

这我可不懂

开发者 软件开发 低代码 传统开发

Kafka优化

数新网络官方账号

大数据 zookeeper

Flume简述

数新网络官方账号

数据采集 flume

一名中级程序员应该具备的技能

树上有只程序猿

编程 程序员 低代码 职业生涯 JNPF

k8s实战案例之部署redis单机和redis cluster

不在线第一只蜗牛

k8s

hive数据迁移

数新网络官方账号

大数据 hadoop hadoop spark hive

使用堡垒机的意义你知道吗?能解决哪些问题?

行云管家

网络安全 信息安全 堡垒机 数据泄露

拉链表的原理及简单实现

数新网络官方账号

大数据 拉链式散列表

通过腾讯云SES服务发送邮件

排骨虾

腾讯云 #go 邮件通知

JAVA 概述

这我可不懂

Java 开发语言

从“云原生”到“比Flink快十倍”:RisingWave的寻找自我认知之旅

吴英骏

数据库 sql 流处理

BI商业智能工具成宠儿,企业降本增效优质工具

夜雨微澜

行云管家- 积极探索“AI+信息安全”的创新融合

行云管家

网络安全 信息安全 智能 AI智能

解读 RocketMQ 5.0 全新的高可用设计

阿里巴巴云原生

阿里云 RocketMQ 高可用 云原生

[NLP] langchain-ChatGLM 本地知识库

alexgaoyh

知识库 私有化部署 langchain ChatGLM-6B

AIGC+办公|大厂争先抢占高位的AI,开始“卷”打工人了吗?

TE智库

人工智能 办公 打工人 AIGC 生成式AI

svn提交规范,与Git相得益彰

互联网工科生

git svn

为什么需要数字化?如果实现数字化?

高端章鱼哥

低代码 数字化 企业管理软件 JNPF

华为云专家出品《深入理解边缘计算》电子书上线

华为云PaaS服务小智

边缘计算 华为云 华为开发者联盟

一年省七位数,得物自建HFDS在 Flink Checkpoint 场景下的应用实践

得物技术

大数据 阿里云 成本优化

一次搞懂线性稳压器/LDO的工作原理

元器件秋姐

物理 电路 元器件 PCB 稳压器

这些面试技巧,助你升职加薪、迎娶白富美

伤感汤姆布利柏

BI商业智能工具改变企业发展态势

对不起该用户已成仙‖

Android SDK安全加固问题与分析

百度Geek说

android 安全加固 企业号 6 月 PK 榜 6 月 优质更文活动

鲸鸿动能荣获2023 TopDigital 3项大奖

最新动态

处理REST服务安全_SOA_Boris Lublinsky_InfoQ精选文章