有人可以解释这个 MySQL db Python 注入查询吗
could someone explain this MySQL db Python injection query
谁能解释一下这个 sql 注入查询是如何工作的
"Arizona'; TRUNCATE TABLE states ; SELECT * FROM states WHERE name = '"
我认为它只是截断 table 擦除数据并重新启动 auto-increment 索引
它不会删除数据库,但会清空 table states
。在您的代码中,如果您采用未经过滤的输入并将其附加到您的查询中,那么此输入会将您的 SQL 语句变成一个批处理。 Arizona 之后的 ';
将结束第一条语句。接下来,执行 TRUNCATE TABLE states;
语句,清除 states
中的所有数据。最后,最后一条语句是这样执行的SELECT * FROM states WHERE name = ''
。您的代码提供了最终的 '
,因此 SQL 批次不会失败。
谁能解释一下这个 sql 注入查询是如何工作的
"Arizona'; TRUNCATE TABLE states ; SELECT * FROM states WHERE name = '"
我认为它只是截断 table 擦除数据并重新启动 auto-increment 索引
它不会删除数据库,但会清空 table states
。在您的代码中,如果您采用未经过滤的输入并将其附加到您的查询中,那么此输入会将您的 SQL 语句变成一个批处理。 Arizona 之后的 ';
将结束第一条语句。接下来,执行 TRUNCATE TABLE states;
语句,清除 states
中的所有数据。最后,最后一条语句是这样执行的SELECT * FROM states WHERE name = ''
。您的代码提供了最终的 '
,因此 SQL 批次不会失败。