EntityManager.find(id) 会执行恶意攻击吗?

Posted

技术标签:

【中文标题】EntityManager.find(id) 会执行恶意攻击吗?【英文标题】:Would EntityManager.find(id) execute malicious attack? 【发布时间】:2018-10-12 19:08:54 【问题描述】:

我的休息服务从 UI 中获取“ids”参数。我的控制器如下

@RestOutMessage
deleteEntry(List<String> ids) 
    .......

我在我的应用上运行 Checkmarx,它突出显示了“ids”,并报告说它容易受到 XSS 和其他 html 注入攻击。

在内部我的代码使用entityManager.delete(id)。 我不确定这是否安全,或者我如何解释这是否安全。

【问题讨论】:

XSS 和 HTML 注入发生在面向客户端的模型上,而不是服务器端模型上。 谢谢,但我从 UI 中得到了“Id” 如果您有来自 UI 的任何类型的事务,那么是的,攻击者可以捎带客户端 XSS 来攻击您的数据库。 尝试添加更多代码,以便我们可以看到整个可疑的攻击向量。此外,Checkmarx 警告的完整描述可能会有所帮助。 【参考方案1】:

我对 checkmarx 不熟悉,但我对你的问题很感兴趣。我真的不明白这行代码如何与 XSS 或 HTML 注入相关联。您可能应该只担心 SQL 注入,并且在这方面您是安全的 - Hibernate 在下面使用 PreparedStatement。

【讨论】:

以上是关于EntityManager.find(id) 会执行恶意攻击吗?的主要内容,如果未能解决你的问题,请参考以下文章

JPA学习笔记(11)——使用二级缓存

何时将 EntityManager.find() 与 EntityManager.getReference() 与 JPA 一起使用

Session.get() 和 EntityManager.find() Hibernate 有啥区别

EntityManager.find() 和 EntityManger.getReference() 有啥区别?

Eclipselink 未检测到脏实体

Linux常用命令(十六)