繁体   English   中英

如何使用SQL注入删除表

[英]How to delete a table with SQL injection

我只是想在这里找出一些东西。 我正在研究SQL注入,无论尝试多少,我似乎都无法删除该表,而且我想知道是否无法完成该操作-请问我有一些有关此表如何执行的示例被删除?

<?php

$username = trim($_POST['username']);
$cxn = mysqli_connect($a,$b,$c,$d);
if ($cxn) {

$sql = "SELECT * FROM members WHERE logins = '{$username}';";
// tried sending: '; DROP TABLE members".' doesn't work...
$result = mysqli_query($cxn,$sql)
if (!$result) { echo 'Couldn\'t be done!'; } else { echo 'Query completed!'; }

}

?>

那么,如何使用SQL注入删除表成员-还是Web安全的? 谢谢。

除非您使用mysqli_multi_query ,否则MySQLi不允许多堆栈查询,因此将无法执行DELETE -ing或DROP mysqli_multi_query

但是,此代码仍然非常不安全。

假设$ username取得值

$username = "' or id > '1"

它会转移成

SELECT * FROM members WHERE logins = '' or id > '1'

有致命的误会。

SQL注入不等于删除表。 后一个动作只是一个例子,非常生动,但在阅读环境中却不太可行。 但是注入不仅限于删除表!

因此,即使在您的特定情况下无法进行这种特定类型的注入,也不会使您的代码“网络安全”!

您不必关心使用注射的众多特定方法,而必须立即减少所有注射。 通过使用准备好的语句

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM