微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

prepareStatement是否避免SQL注入?

如何解决prepareStatement是否避免SQL注入?

使用字符串连接从任意输入构造查询PreparedStatement不安全。看一下这个例子:

preparedStatement = "SELECT * FROM users WHERE name = '" + userName + "';";

如果有人放

' or '1'='1

as userName,您PreparedStatement将很容易受到sql注入的攻击,因为该查询将以

SELECT * FROM users WHERE name = '' OR '1'='1';

所以,如果您使用

preparedStatement = "SELECT * FROM users WHERE name = ?";
preparedStatement.setString(1, userName);

你会很安全的。

某些代码摘自该Wikipedia文章

解决方法

我已阅读并尝试将易受攻击的sql查询注入到我的应用程序中。它不够安全。我只是使用Statement Connection进行数据库验证和其他插入操作。

prepareStatement安全吗?而且此语句也会有问题吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。