有人可以指点我一个关于安全运行部分来自用户输入的SQL查询的初学者指南吗?我正在使用Java,但语言中立的指南也很好.
期望的行为是,如果有人在GUI中输入类似的东西
very nice;) DROP TABLE FOO;
数据库应将其视为文字字符串并安全地存储它而不丢弃任何表.
你肯定想要使用PreparedStatement.他们很方便.这是一个例子.
使用PreparedStatement而不是Statement
通常,您不应创建连接输入的查询,而应使用PreparedStatement.
这使您可以指定在查询中设置参数的位置,因此Java将负责为您清理所有输入.