JavaSpring数据CRUD方法
我们使用spring数据,其要点是能够只使用提供的接口(例如Crudepository),而不必实际实现
我们已经意识到,我们需要采取措施确保我们的应用程序:
- 转义非法的HTML字符,如&<&燃气轮机;“'来自输入
- 具有针对sql注入的保护
对我来说,最符合逻辑的地方似乎是在我们所有回购协议共享的通用db方法的高层。但是由于它们没有在我们的代码中的任何地方实现,我不知道这是否已经在spring数据中实现了
你可以在下面搜索框中键入要查询的问题!
我们使用spring数据,其要点是能够只使用提供的接口(例如Crudepository),而不必实际实现
我们已经意识到,我们需要采取措施确保我们的应用程序:
对我来说,最符合逻辑的地方似乎是在我们所有回购协议共享的通用db方法的高层。但是由于它们没有在我们的代码中的任何地方实现,我不知道这是否已经在spring数据中实现了
# 1 楼答案
在这里,您似乎混合了两个非常不同的问题,所以让我们分别讨论它们:
针对SQL注入的保护可以在相应的SQL ish spring数据实现中找到:JDBC或JPA;所以你不必担心。通用API不会公开与此相关的任何内容,因为它是通用的,例如,当您使用HBase时,“SQL注入”听起来非常奇怪
转义HTML内容是一件完全不同的事情,因为它是表示层的问题,而不是数据层的问题。因此,当您希望在UI中显示存储的数据时,可以在验证时将输入转义,然后再将其发送到存储库,或者在之后对输出进行清理
值得注意的是,HTML只是数据可以作为一种格式传递的一种。如果以后还需要生成JSON或CSV,那么最终会在数据库中混合不同格式的转义。这就是为什么逃逸不是DAO层的一部分,为什么输出消毒是安全的方法
# 2 楼答案
解决您对
<>你应该考虑使用:escapes illegal HTML characters such as & < > " ' from input
的担忧在你的服务层
有关此类的更多信息,请参阅StringEscapeUtils JavaDocs