Java 如何保护RESTWeb服务?

Java 如何保护RESTWeb服务?,java,spring,web-services,rest,spring-mvc,Java,Spring,Web Services,Rest,Spring Mvc,我正在学习Spring核心认证,我对如何RESTweb服务有一些疑问,我正在学习如何将其应用于Spring框架 因此,根据我的学习材料,我对这个问题有一些疑问,但我找不到答案 所以问题是(我不知道这些问题是相互关联的): 休息安全吗?您可以做些什么来保护它? REST与传输层安全性(TLS)一起工作吗? 我了解REST Web服务是如何工作的,我知道它使用Http方法访问资源并实现CRUD操作,但询问REST是否安全意味着什么?在这种情况下,安全是什么意思 那么REST中的TSL到底是什么呢。休

我正在学习Spring核心认证,我对如何RESTweb服务有一些疑问,我正在学习如何将其应用于Spring框架

因此,根据我的学习材料,我对这个问题有一些疑问,但我找不到答案

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

  • 休息安全吗?您可以做些什么来保护它?

  • REST与传输层安全性(TLS)一起工作吗?

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


    那么REST中的TSL到底是什么呢。休息安全吗?您可以做些什么来保护它?

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

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

    什么是安全性?:

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

    • 保密性
    • 完整性
    • 可用性
    所有这些都需要不同的安全措施。有些不能单独由webservice(REST)处理。(例如,可用性意味着服务器本身是安全的,并且您有抵御dDoS攻击的安全措施。)

    它并没有很好地定义REST的详细内容,也不是官方标准或规范。我想说,休息本身是不安全的。您可以围绕它构建一些机制来保护它(如TLS、令牌身份验证)。其中许多措施与REST没有直接关系

    2。REST与传输层安全性(TLS)一起工作吗?


    对。可以加密与RESTful Web服务的通信,并向客户端验证服务器。(保密性和某种程度上的完整性)

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


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

    这是一个非常广泛的主题。安全性是关于权衡,而不是简单的是/否划分。回答得好。查看OWASP对于本主题来说是一个非常好的主意。