Java SQL注入(inject)

标签 java sql postgresql jdbc

在后台数据库调用PostgreSQL函数如下:

SELECT * FROM prepend('abcdefg');

前端Java客户端调用PostgreSQL函数如下:

"SELECT * FROM prepend('?');"

会不会造成SQL注入(inject)?有没有更好的办法?

编辑

不想使用 PreparedStatement。 Java 8 Streams 怎么样?

最佳答案

使用 java.sql.PreparedStatement 是最好的选择。这是在您的案例中使用 PreparedStatement 的方法,

String input = "abcdefg";
PreparedStatement ps = connection.prepareStatement("SELECT * FROM prepend(?)");
ps.setString(1, String.format("%s", input));

关于Java SQL注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52688618/

相关文章:

sql - 识别非常接近的行组

java - 为什么声明 "Driver not found: [org.postgresql.Driver]"与 postgresql 9.3-1102.jdbc41 依赖关系?

java - 如何在没有分析器的情况下获取 JVM 中迄今为止分配的总内存?

MySQL 将字段连接到结果集

c# - 如何限制我的sql数据库中的行数,然后在达到限制时覆盖行?

mysql - 为什么我的更新查询对我的表格内容没有影响?

java - 如何在 thymeleaf 中处理和连接字符串

java - EJB定时器服务: order of timeouts with same ScheduleExpression

java - 如何以编程方式构建 pom 文件的有效模型?

sql - SELECT 值排除来自其他 SELECT 的值