我有一个表单,用户可以在其中注册我的网站 数据存储在 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/