我很难弄清楚Spring Boot的JPA是否有任何内置的安全机制可以防止SQL注入。
如果我使用JpaRepository,它是否会生成数据库的准备声明,它是否内置了任何类型的白/黑列表,或者是否还有更多?
所有这些功能都是Spring Boot Security依赖项的一部分吗?
JPA Security是Java Persistence API(JPA(的访问控制解决方案。其特点包括:
- 高性能查询:使用JPA Security,可以在数据库中执行访问控制。您可以在数据库中查询特定类型的所有对象,并且只获取您有读取访问权限的对象。此筛选在数据库中进行。不可接受的查询对象将不会加载到内存中
- 通过配置进行访问控制:JPA Security使您能够从代码库中完全删除与安全相关的代码。所有的访问控制可以通过注解或XML来配置
- 支持基于角色的访问控制、访问控制列表(ACL(和域驱动的访问控制:使用JPA Security,您不必更改您的访问控制模式(但当您看到JPA Security的强大功能时,可能需要更改(。您甚至可以轻松地混合访问控制范例
- Java EE Security和其他框架的集成:JPA Security不是为了取代当前的安全解决方案,而是为了扩展它们。它可以顺利集成到Java EE平台的安全机制中,但也可以与Spring security或Java SE等第三方框架一起使用
- 易于扩展性:通过JPASecurity的可扩展性,可以轻松地提供您自己的访问控制范式、访问规则存储或登录机制
有关更多详细信息,请参阅JPA安全核心。