mysql 注入问题.

发布于 2022-09-05 23:23:05 字数 314 浏览 39 评论 0

当前情况,手上帮人修改一个非常老的网站,他里面的sql语句都是没有预处理的.
现在我无法做到帮他全部改成pdo,不想那么麻烦,我用正则添加把所有的sql语句中php变量都加上了单引号,并开启了gpc.
现在假如$sql="SELECT * FROM users WHERE username= '$name' ADD pwd='$pwd'";
我觉得这样好像不能注入了.我自己测试是将$name改成xxx'# 其他的都不会.不太懂sql.
请问现在这个还能被注入吗.
如果能,怎么防护?
谢谢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

我还不会笑 2022-09-12 23:23:05

防止sql注入是要改成参数化查询的,而不是拼接sql

记忆消瘦 2022-09-12 23:23:05

采用PDO或者MySQLI预处理,绑定参数或者值的方式才能杜绝SQL注入。

各种高级语言连接mysql的类库应该都会提供用带占位符参数的SQL,实际执行的时候,传入参数值就可以了,这种方式有效的防止sql注入问题。

比如java的。

Connection connection = dataSource.getConnection();  
PreparedStatement selectStatement = connection.prepareStatement("SELECT * FROM T_USER WHERE USER_NAME = ?");  //使用占位符参数
selectStatement.setString(1, "zhangsan"); //替换参数
吃颗糖壮壮胆 2022-09-12 23:23:05

对sql进行预处理可以避免。

吃素的狼 2022-09-12 23:23:05

装个安全狗什么的,代码不用改了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文