我正在使用自动回复电子邮件软件(AutoResponse Plus - ARP3)。这是一个安装在 cgi-bin 目录中的 perl 脚本。上周有人入侵了该软件并使用该软件从我的服务器发送了大量垃圾邮件。很少有研究表明,该软件没有防止 SQL 注入的机制。
如果您在同一条船上,请联系供应商进行修复。看起来没有简单的解决方案可以 100% 修复它,因为该软件的源代码已被缩小和混淆。
我正在使用自动回复电子邮件软件(AutoResponse Plus - ARP3)。这是一个安装在 cgi-bin 目录中的 perl 脚本。上周有人入侵了该软件并使用该软件从我的服务器发送了大量垃圾邮件。很少有研究表明,该软件没有防止 SQL 注入的机制。
如果您在同一条船上,请联系供应商进行修复。看起来没有简单的解决方案可以 100% 修复它,因为该软件的源代码已被缩小和混淆。
你似乎很困惑。注入错误是编码错误,而不是验证问题。生成代码时无法将文本转换为适当的文字。
例如,
my $stmt = "
SELECT *
FROM Table
WHERE $field='$value'
";
应该
my $stmt = "
SELECT *
FROM Table
WHERE ".$dbh->quote_identifier($field)."=".$dbh->quote($value)."
";
或者
my $stmt = "
SELECT *
FROM Table
WHERE ".$dbh->quote_identifier($field)."=?
";
# Followed by ->execute($value) instead of ->execute()