提问人:Simone Lungarella 提问时间:10/19/2021 最后编辑:Simone Lungarella 更新时间:10/19/2021 访问量:150
如果参数不包含单引号,然后用单引号四舍五入,是否可以执行 SQL 注入?
Is it possible to execute a SQL Injection if a parameter contains no single quotes and is then sorrounded by single quotes?
问:
如果解析参数以删除包含的所有单引号,然后用单引号括起来,是否仍然可以进行 SQL 注入?我知道这看起来很糟糕,一般来说,使用准备好的语句要好得多,但是,出于好奇,我想知道是否有一种方法,甚至更好的例子,如果参数如下,如何对数据库造成损害:
String nativeQuery = "INSERT INTO USER (NAME) VALUES (' " + username.replace("'", "") + "')";
EntityManager em = getEm();
Query query = em.createNativeQuery(nativeQuery);
query.executeUpdate();
我没有在网上找到任何解释这种特定情况的资源,似乎不可能从字符串中执行任何命令,有人可以确认吗?即使底部的标签中不存在使用的方言,答案也值得赞赏。
答: 暂无答案
评论
preparedStatement
,然后使用 .它将传递数据,而不是注入的 SQL 文本setString