本文介绍了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()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!