SQL注入攻击-使用mySQLI_MULTI_QUERY() [英] SQL Injection attack - the use of mysqli_multi_query()

查看:43
本文介绍了SQL注入攻击-使用mySQLI_MULTI_QUERY()的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我现在正在学习MySQL,它涉及的主题之一是处理用户输入时的安全问题--一个令人担忧的问题是注入攻击。我试图复制书中演示的攻击,如添加查询$query = "select * from temp_table; drop table temp_table,我使用了mysqli_query($connection,$query)。什么都没发生。我改为使用mysqli_multi_query(),发现它执行这两个语句。最后,我发现mysqli_query每次只运行一个查询。

我的问题是,如果我使用mysqli_query,从理论上讲,系统应该不会担心额外的语句注入攻击?或者,即使服务器正在使用mysqli_query

,用户仍可以通过任何其他方式运行其他语句

推荐答案

确实,基本mysqli_query()将只运行一条语句。因此,您不必担心SQL注入攻击会诱使您的应用程序运行多条语句。

但一条语句可以包含子查询或SELECT... UNION SELECT...

一条语句可以读取它不打算读取的数据。或引发旨在使您的服务器不堪重负的拒绝服务攻击。

或者它可能只是一个错误,根本不是恶意攻击。

SELECT * FROM Users WHERE last_name = 'O'Reilly'; -- woops!

SQL注入的解决方案非常简单,很容易理解。我不明白为什么这么多开发人员找借口不写安全代码。

这篇关于SQL注入攻击-使用mySQLI_MULTI_QUERY()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆