我应该如何清理Java中的数据库输入?

Ben*_*ino 13 java mysql security sql-injection

有人可以指点我一个关于安全运行部分来自用户输入的SQL查询的初学者指南吗?我正在使用Java,但语言中立的指南也很好.

期望的行为是,如果有人在GUI中输入类似的东西

very nice;) DROP TABLE FOO;

数据库应将其视为文字字符串并安全地存储它而不丢弃任何表.

Jos*_*ola 10

你肯定想要使用PreparedStatement.他们很方便.这是一个例子.


Seb*_*Seb 5

通常,您不应创建连接输入的查询,而应使用PreparedStatement.

这使您可以指定在查询中设置参数的位置,因此Java将负责为您清理所有输入.