我们使用spring数据,其全部内容是能够只使用提供的接口(例如CrudRepository)而不必实际实现东西.
我们已经意识到我们需要采取措施来确保我们的应用:
>逃避非法HTML字符,如& < > “来自输入
>具有针对sql注入的保护
对我来说,最合乎逻辑的地方似乎是在我们所有的repos共享的通用db方法中的某个地方.但是因为它们没有在我们的代码中的任何地方实现,所以我不知道这是否已经在spring数据中实现了.
解决方法:
你似乎在这里混淆了两个非常不同的问题,所以让我们分别讨论它们:
>可以在相应的SQL-ish spring-data实现中找到针对SQL注入的保护:JDBC或JPA;所以你不必担心它.通用API不公开与此相关的任何内容,因为它是通用的,例如,当您使用HBase时,“SQL注入”听起来很奇怪.
>转义HTML内容是完全不同的事情,因为它是您的表示层而不是数据层的关注点.因此,当您想要在UI中显示存储的数据时,您可以在验证时转义输入,然后将其发送到存储库或之后清理输出.
请注意,HTML只是您的数据可以传递的格式之一.如果您以后需要也生成JSON或CSV,则最终会在数据库中混合使用不同格式的转义.这是一个明显的原因,为什么转义不是DAO层的一部分,为什么输出消毒是安全的方式.
标签:java,spring,spring-data 来源: https://codeday.me/bug/20190723/1511821.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。