ユーザーまたは外部ソースからの入力を読み取るときはいつでも、そこから SQL コマンドを作成する前に、常にエスケープする必要があります。
これを行う 1 つの方法は、準備済みステートメントまたはストアド プロシージャを使用し、組み込み関数呼び出しを使用して変数を設定することです。次に、関数がエスケープを処理します。
SQL を手動で作成する必要がある場合は、それをエスケープする関数を記述します。ほとんどの SQL エンジンでは、埋め込まれた一重引用符を探して二重にするだけで十分です。
パット・オハラは「こんにちは」と言った
の中へ
パット・オハラは「こんにちは」と言った
一部の SQL エンジンには、エスケープが必要な他の文字があります。たとえば、Postgres ではバックスラッシュを 2 つ使用する必要があります。
これを行う関数を書くのは簡単で、それを常に使用します。
私はプログラマーと多くの会話をしてきましたが、彼らは、この特定の分野に誰かが見積もりを入力する可能性は低いと考えていたので、この場合は気にしなかったと言っています。しかし、通常、私たちが会話をしている理由は、誰かがそうしたからです. 分析しないで!早くやれよ!シートベルトをしているようなものです。そこに座って、この特定の旅行で事故に遭う可能性を計算できますが、なぜですか? 賢明な運転手は、私道から通りに車を移動するだけでも、常にシートベルトを着用することを無意識に自動的に行います。賢明なデータベース プログラマーは、入力文字列を常にエスケープします。