如果无法在一条准备好的语句中执行两个mysql查询,我应该担心SQL注入吗?

时间:2019-04-25 13:29:05

标签: mysql mysql-workbench sql-injection

这里是小的伪样本:

        SET @StA = CONCAT('CREATE TABLE hackTable 
        (id INT(10) 
        name VARCHAR(45)); SELECT * FROM hackTable;');            
        PREPARE statementA FROM @StA;
        EXECUTE statementA;
        DEALLOCATE PREPARE statementA;

此准备好的语句引发错误1064(您的SQL语法有错误。)。

此处:https://dev.mysql.com/doc/refman/8.0/en/prepare.html 据说:

  

...包含SQL语句文本的用户变量。文本必须表示一个语句,而不是多个语句。

如果通过用户输入动态设置表名(是的,我已经阅读了很多有关转义,白名单等技术的文章,如何防止SQL注入攻击。),存在SQL注入的风险,但是由于另外一些在第一个查询末尾会抛出错误,这是否限制了仅创建损坏表的风险?我是否正确理解了这一点,或者还有其他方法可以使我的查询更加混乱?

0 个答案:

没有答案