SQL インジェクションとは、コード (通常はポート 80 を説明する Web コード) に脆弱性があることを意味し、サードパーティが必要な SQL コマンドをデータベースで実行できるようにします。あなたがこれに対してオープンなままにしておくと、彼らがやりたいことをするのを防ぐことはできません.
それを回避する方法は、プログラミングしている特定の言語 (Python、Ruby、Java など) によって異なりますが、2 つの主なポイントは、「入力を適切にサニタイズすることです。つまり、文字が適切にエスケープされていることを確認して、誰かができるようにすることです」たとえば、セミコロンを挿入して混乱を招くと、クエリをパラメータ化します. これは、SQL クエリを記述するときに、ユーザー定義の入力にパラメータを使用し、それらのパラメータを安全に埋めることを意味します. Perl では、次のように使用します:
$sth = $dbh->prepare("SELECT * FROM TABLE WHERE id = ?");
$sth->execute($id);
それらをプレースホルダーと考えてください。
繰り返しますが、これの正確な方法は、選択した言語によって異なります。
これを理解したら、あなたは道を進んでいます:http://xkcd.com/327/