Moh*_*igh 34 java sql-injection jdbc prepared-statement
我已阅读并尝试将易受攻击的SQL查询注入我的应用程序.这不够安全.我只是使用Statement Connection进行数据库验证和其他插入操作.
preparedStatements安全吗?而且这个陈述也会有问题吗?
dar*_*ioo 55
使用字符串连接从任意输入构造查询将PreparedStatement不安全.看看这个例子:
preparedStatement = "SELECT * FROM users WHERE name = '" + userName + "';";
Run Code Online (Sandbox Code Playgroud)
如果有人提出
' or '1'='1
Run Code Online (Sandbox Code Playgroud)
因为userName,您PreparedStatement将容易受到SQL注入,因为该查询将在数据库上执行
SELECT * FROM users WHERE name = '' OR '1'='1';
Run Code Online (Sandbox Code Playgroud)
所以,如果你使用
preparedStatement = "SELECT * FROM users WHERE name = ?";
preparedStatement.setString(1, userName);
Run Code Online (Sandbox Code Playgroud)
你会安全的.
这些代码中的一部分取自本维基百科的文章.
| 归档时间: |
|
| 查看次数: |
26184 次 |
| 最近记录: |