0

自動応答メール ソフトウェア (AutoResponse Plus - ARP3) を使用しています。これは cgi-bin ディレクトリにインストールされた perl スクリプトです。先週、誰かがこのソフトウェアをハッキングし、私のサーバーからこのソフトウェアを使用して大量のスパム メールを送信しました。ほとんどの調査では、このソフトウェアには SQL インジェクションを防止するメカニズムがないことが明らかになりました。

同じボートに乗っている場合は、ベンダーに連絡して修正してください。このソフトウェアのソース コードは圧縮および難読化されているため、100% 修正する簡単な解決策はないようです。

4

1 に答える 1

2

あなたはとても混乱しているようです。インジェクション エラーはコーディング エラーであり、検証の問題ではありません。コードを生成するときに、テキストを適切なリテラルに変換できていないことが原因です。

例えば、

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()
于 2013-08-05T21:14:51.123 に答える