Dav*_*ebb 6 java sql-injection jdbc prepared-statement
我知道使用Prepared Statements是防止SQL注入的最佳方法(以及未经检查的输入中未转义字符导致的语法错误).
我目前的情况是我正在编写一些Java代码来将数据从一个第三方应用程序移动到另一个应用程序.目标应用程序使用Sybase的专有版本,因此虽然我确实让JTDS JDBC驱动程序PreparedStatement失败,因为驱动程序使用的临时存储过程在数据库的这种特殊风格中不受支持.所以我只需要Statement使用,我无法控制用户输入,因为它来自另一个应用程序.
有类似的问题,但是这个问题主要集中在修复问题,即你有一个参数,例如一个无法通过Prepared Statement处理的表.我的情况不同,希望更简单,因为我有简单的SQL语句.我想知道是否有最佳实践来复制以下内容而不使用PreparedStatement:
PreparedStatement statement = connection.prepareStatement("UPDATE mytable SET value=? WHERE id=?");
statement.setInt(1, getID());
statement.setString(2,userInput);
statement.executeUpdate();
Run Code Online (Sandbox Code Playgroud)
所以我想问题是如何可靠地清理用户输入?我可以尝试从头开始自己做,但这似乎是一个坏主意,因为可能至少有一个我会想念的边缘情况,所以我希望那里有一个库可以为我做这个,但是到目前为止我还没能找到一个.
| 归档时间: |
|
| 查看次数: |
10345 次 |
| 最近记录: |