如何保护REST Web服务?

时间:2015-04-10 14:15:57

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

我正在攻读Spring核心认证,我对如何 REST Web服务有所怀疑,我正在研究它以应用于Spring框架。

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

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

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

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

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

    REST中的 TSL 究竟是什么?

2 个答案:

答案 0 :(得分:3)

<强> 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服务的通信,并向客户端验证服务器。 (机密性以及某些扩展完整性

答案 1 :(得分:1)

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

<强> 2。一般是的。现成的服务器支持TLS,但是使用REST进行通信的完全从头开始编写的程序可能无法实现TLS代码(这是一个相当不切实际的方案,但我为了完整性而包括它)。