【发布时间】:2020-05-29 00:04:23
【问题描述】:
我正在使用 Spring Data Rest 向我们的 React 前端应用程序公开 JPA 存储库。 而且我还使用 Spring Security 和 JWT 来保护 REST API。
例如,我们有如下实体和存储库:
@Entity
@Table(name = "customer")
public class Customer {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
....
}
public interface CustomerRepository extends PagingAndSortingRepository<Customer, Long> {
}
Spring Data Rest 会将 CustomerRepository 暴露给 REST 端点 /api/customers
所以我们的 React 应用程序可以调用 REST 端点来获取数据。效果很好。
但是,拥有有效 JWT 令牌的人可以使用 Postman 等工具从服务器获取所有客户数据。当然,我们不希望这种情况发生。
我的问题:
- 如何防止此类异常使用?
- 使用 Spring Data Rest 的最佳做法是什么?
【问题讨论】:
-
使用 Spring Security 来保护符合您要求的端点。
-
是的,我们在项目中使用了 Spring Security。但是,如果是新手用户登录应用程序。一个坏人从他那里窃取令牌并使用 Postman 从服务器获取数据。我们想防止这种情况。我们如何防止这种异常使用?
-
您可以考虑对普通 Web 应用程序进行基于标准会话的身份验证。 1.stackoverflow.com/questions/34259248/what-if-jwt-is-stolen 2.speakerdeck.com/rdegges/jwts-suck
标签: spring security spring-data-rest