java - 攻击者可以将 sql 或 javascript 注入(inject) java POJO 中吗?

标签 java hibernate security xss sql-injection

我有一个表单,用户可以在其中注册我的网站 数据存储在 User POJO 中

class User{
private String userName;
private boolean enabled;
private Date registrationDate;
...
}

然后使用

持久化到数据库
org.hibernate.Session.persist(User)

攻击者是否可以在 userName 字段上进行 sql 注入(inject)或 XSS、污染数据或进行任何其他类型的攻击,我该如何防范?

攻击者还可以将 sql 语句或 javascript 代码存储在 String 以外的数据类型中吗?

最佳答案

https://www.owasp.org/index.php/Hibernate#A_note_about_SQL_injection

验证表单输入总是更好。由于给定的对象相对简单,因此对您来说应该不是问题。

另外,不要通过字符串连接来构建查询,并在需要时使用 Query.setParameter()。这些方法专门用于预防 SQL 注入(inject),将消除此类风险。

关于java - 攻击者可以将 sql 或 javascript 注入(inject) java POJO 中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46834259/

相关文章:

java - 我可以覆盖 jsr-303 验证注释吗

mysql - 加速 Hibernate 对象的创建?

asp.net-mvc - 尝试在 ASP.NET MVC 中使用 Automapper 时,如何消除 SecurityException 错误?

security - 删除 nginx 反向代理中的特定 cookie

java - Wicket 口 6 : empty PageParameters when recreating a page after expiration

java - 如何让用户通过双击从 JOptionPane 中选择一个项目

java - 为什么改变 joinColumn 的顺序,hibernate 返回正确或不正确的查询?

java - spring mvc Controller 中的无限json序列化

java - 错误 java.util.Date

c# - 限制只能通过 .net 应用程序使用的目录