Mysql 更新查询中的SQL注入

Mysql 更新查询中的SQL注入,mysql,sql,database,sql-injection,code-injection,Mysql,Sql,Database,Sql Injection,Code Injection,所以我设置了一个服务器来处理付款请求。用户在表单中输入其信用卡详细信息 要在此处插入的查询: $sql = "UPDATE users SET credit_card'".$credit_card."', cvv='".$cvv."', expdate='".$exp."' WHERE userid='".$_SESSION['userid']."'"; 我正在尝试更改此查询中的其他用户密码 其中,$credit\u card是从表单中过帐的。我试图通过编写自己的查询来注入$credit_ca

所以我设置了一个服务器来处理付款请求。用户在表单中输入其信用卡详细信息

要在此处插入的查询:

$sql = "UPDATE users SET credit_card'".$credit_card."', cvv='".$cvv."', expdate='".$exp."' WHERE userid='".$_SESSION['userid']."'";
我正在尝试更改此查询中的其他用户密码

其中,
$credit\u card
是从表单中过帐的。我试图通过编写自己的查询来注入
$credit_card
部分,并通过添加
来除去其余部分--结束

我用于
$credit\u card
的对账单是:

', password='test' where userid='10';-- 
现在,我肯定这是工作昨天,但现在出现以下错误,我不能把我的头围绕它。需要帮忙吗

查询失败:更新用户设置信用卡“”,密码=“测试”,其中userid='20';--,cvv='',expdate='',其中userid='20'

  • 并非所有数据库函数都接受多个语句,因此
    分隔符可能被视为意外输入

  • MySQL中单行注释的语法是
    --Foo
    (请注意双破折号后面的空格)

  • 如果服务器代码是您的,您可以只打印服务器生成的实际错误消息(而不是一些通用的“出错”文本)。如果不是,只需将错误消息中的SQL代码复制并粘贴到您喜爱的MySQL客户端中即可


  • 请注意,错误消息显示了条件的文本:
    where userid='20'
    两次--我认为在构建sql字符串时出现了问题。是的,但不是;--应该忽略字符串后面的其他部分吗?所以它后面是什么并不重要。而且第一个用户ID应该不同,因为我想更改另一个用户的密码。该映像是jsut,用于测试堆栈溢出。请始终以内联纯文本而不是外部图片的形式提供源代码、错误消息和其他文本信息。文本可搜索、可重复使用,通常更易于阅读。