[英]Native sql query- SQL Injection Attack
我正在与JPA合作。 如果我使用本机sql查询(而非实体查询),我的应用程序如何能保证SQL注入安全? 我需要使用用户从html表单提交的数据来构建本机sql查询。
如果在本机sql中使用参数,则可以避免SQL注入攻击,但是我的问题是我无法确定用户正在提交多少个数据字段。
您应该使用位置参数绑定:
String queryString = "select * from EMP e where e.name = ?1";
Query query = em.createNativeQuery(queryString, Employee.class);
query.setParameter(1, "Mickey");
请注意,您不应像JPA Spec所述在查询中使用命名参数绑定( :empName
)
仅位置参数绑定可用于本机查询。
这样可以使您免受SQL Injection攻击。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.