有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JavaSpring数据CRUD方法

我们使用spring数据,其要点是能够只使用提供的接口(例如Crudepository),而不必实际实现

我们已经意识到,我们需要采取措施确保我们的应用程序:

  • 转义非法的HTML字符,如&<&燃气轮机;“'来自输入
  • 具有针对sql注入的保护

对我来说,最符合逻辑的地方似乎是在我们所有回购协议共享的通用db方法的高层。但是由于它们没有在我们的代码中的任何地方实现,我不知道这是否已经在spring数据中实现了


共 (2) 个答案

  1. # 1 楼答案

    在这里,您似乎混合了两个非常不同的问题,所以让我们分别讨论它们:

    1. 针对SQL注入的保护可以在相应的SQL ish spring数据实现中找到:JDBC或JPA;所以你不必担心。通用API不会公开与此相关的任何内容,因为它是通用的,例如,当您使用HBase时,“SQL注入”听起来非常奇怪

    2. 转义HTML内容是一件完全不同的事情,因为它是表示层的问题,而不是数据层的问题。因此,当您希望在UI中显示存储的数据时,可以在验证时将输入转义,然后再将其发送到存储库,或者在之后对输出进行清理

    值得注意的是,HTML只是数据可以作为一种格式传递的一种。如果以后还需要生成JSON或CSV,那么最终会在数据库中混合不同格式的转义。这就是为什么逃逸不是DAO层的一部分,为什么输出消毒是安全的方法

  2. # 2 楼答案

    解决您对escapes illegal HTML characters such as & < > " ' from input的担忧

    <>你应该考虑使用:

    org.apache.commons.lang.StringEscapeUtils.escapeHtml(str) 
    

    在你的服务层

    有关此类的更多信息,请参阅StringEscapeUtils JavaDocs