【问题标题】:How can secure a REST web service?如何保护 REST Web 服务?
【发布时间】:2015-06-16 07:26:54
【问题描述】:

我正在学习 Spring 核心认证,我对 REST web 服务的方式有一些疑问,我正在研究它以应用于 Spring 框架。

所以我对这个基于我的学习材料的问题有一些疑问,但我找不到答案。

所以问题是(我不知道这些问题是相互关联的):

  1. REST 安全吗?你能做些什么来保护它?

  2. REST 是否适用于传输层安全 (TLS)?

我了解 REST Web 服务的工作原理,并且知道它使用 Http 方法来访问资源并实现 CRUD 操作,但是询问 REST 是否安全意味着什么?在这种特定情况下,安全是什么意思?

REST 中的 TSL 到底是什么?

【问题讨论】:

  • 这是一个非常广泛的话题。安全是关于权衡,而不是简单的是/否之分。

标签: java spring web-services rest spring-mvc


【解决方案1】:

1. REST 安全吗?你能做些什么来保护它?

REST 是一种范式。它不是完成的协议或实现。 有一些机制可以保护 RESTful Web 服务(一种是 TLS),但默认情况下 REST 并没有说明任何内容。

OWASP 很好地概述了 REST 安全主题以及如何保护 RESTful Web 服务:

什么是安全性?:

请注意,信息安全有不同的安全目标:

  • 保密
  • 诚信
  • 可用性

所有人都需要不同的安全措施。有些无法单独由 Web 服务 (REST) 处理。 (例如,可用性意味着服务器本身是安全的,并且您有针对 dDoS 攻击的安全措施。)

REST 是什么的详细定义并没有得到很好的定义,它不是官方标准或规范。我会说 REST 本身并不安全。您可以围绕它构建一些机制来保护它(例如 TLS、令牌身份验证)。许多这些措施与 REST 没有直接关系。

2。 REST 是否适用于传输层安全 (TLS)?

是的。 Transport Layer Security 可以加密与 RESTful Web 服务的通信并向客户端验证服务器。 (机密性,在某种程度上诚信

【讨论】:

  • 好答案。查看 OWASP 是本主题的一个非常好的主意。
【解决方案2】:

1.这取决于。安全是关于权衡的,而不是简单的是/否问题。 REST 本质上不是安全的或不安全的;这取决于你如何实现它。一个例子是 SQL 注入攻击:REST 的使用与系统是否阻止它们无关。另一个例子是授权访问:REST 本身并不限制对其公开的资源的访问。如果您需要保证这些资源只能在本地访问,那么使用 REST 会更难确保。

2。一般是的。现成的服务器支持 TLS,但是使用 REST 进行通信的完全从零开始编写的程序可能无法实现 TLS 代码(这是一个相当不现实的场景,但为了完整起见,我将其包括在内)。

【讨论】:

    猜你喜欢
    • 2017-07-12
    • 2012-09-10
    • 1970-01-01
    • 1970-01-01
    • 2012-02-15
    • 1970-01-01
    • 2011-06-16
    • 1970-01-01
    • 2014-08-16
    相关资源
    最近更新 更多