2016-05-02 14 views
0

私は、SQLインジェクションが、パラメタライズされたSQLを使用して、日々の通常のウェブサイトにまだ潜在的な脅威であるかどうか疑問に思いました。 (ASP.NET - '@ 0')。SQLインジェクションは依然として脅威ですか?

これが依然として脅威である場合、クラッカーはこれらのパラメータをどのように上書きまたは回避しますか?

答えて

5

OWASPによると、それは(ASP.NETが出てきた長い後)まだ2013年にトップの脅威だった:https://www.owasp.org/index.php/Top_10_2013-A1-Injection

パラメータ化されたSQLは、SQLインジェクションを心配する必要は削除されません。私は以前の開発者がパラメータとして文字列を取得し、その文字列を含むいくつかの動的SQLを作成し、それを実行するストアドプロシージャを作成した会社で働いていました。彼らはパラメータ化されているので安全だと主張していましたが、SQLコードをストアドプロシージャに渡して実行できることを示すことができました。

また、パラメータをサポートする言語を使用しているため、SQLインジェクションから安全であると主張しても、毎回パラメータを使用しているわけではありません。あなたのデータベースにコードを挿入できるのは、誰かのために1つだけです。

+2

私は、パラメータ化を適切に使うことで、効果的にSQLインジェクションの脅威を効果的に排除することができます。ハッカーは何かをパラアタライズすることはできません。 あなたが記述した状況は、プログラマーがあらかじめコンパイルされたクエリの利点を多かれ少なかれ除去したという点で非常に特有です。有効ですが、おそらくOPが尋ねていたものではありません。興味深いもの: – user2752635

+0

だから、SQLインジェクションはもっとスリップアップに基づいていますか?答えをありがとう: –

+0

@ user2752635文字列の内容がコードとして誤解される可能性がありますが、どうすればそれを避けることができますか? –

4

はい、SQLインジェクションは依然として脅威です。これらのタイプのものには常に新しい脆弱性が存在します。

注射が依然として脅威と考えられる理由はいくつかあります。

  • これは簡単な攻撃です。他の人が攻撃するために多くのコンピュータを使用する場合は、1台のコンピュータしか必要ありません。
  • プログラミングが悪いと、プログラミングが悪いと簡単に脆弱になることがあります。攻撃者が脆弱性を見つけるのを困難にするためには、できるだけデータベースを安全にする必要があります。
  • ユーザーの入力を信頼していることがあります。ユーザーの入力を信頼することもあります。

これはほんのわずかです。ただし、SQLデータベースを使用する場合は覚えておいてください。一般の人々がプロジェクトを使用する前に、プロジェクトの脆弱性を考慮してください。

関連する問題