質問

  1. パラメーター化されたクエリを使用して、SQL注入の防止に役立つことがわかっています。しかし、SQL注入を防ぐためにパラメーター化されたクエリ内で動作する基本的なロジックが何であるかを知っているのではないかと思っていましたが、それは非常に簡単かもしれませんが、それについては知りません。 Googleを検索しようとしましたが、基本的なものは何ですか?が、ASP.NETでパラメーター化されたクエリを使用する方法を見つけるたびに見つけました。
  2. SQLインジェクションで使用されるが、特殊文字のみを停止するような特殊文字を停止する特別なクラスを作成することを知っていますが、SQLインジェクションを完全に防止しますか?
  3. また、.NETパラメーター化されたクエリは、SQLインジェクションを完全に停止できますか?
役に立ちましたか?

解決

パラメータ化されたクエリは、準備されたクエリデータベースサポートに依存していないと思います。データベースドライバー自体が安全な方法を渡すことで、どのように行われるかはドライバー自体によって異なります。

PostgreSQLマニュアルは、パラメーター化されたクエリに関する基本について説明します データベースレベル。

一方、パラメーター化されたクエリは、ロケールに敏感なデータを渡すことを簡素化します。たとえば、ユーザーは100,00小数点に入りますが、サーバーは100.00の値を期待しています。

他のヒント

私が知っているすべてのデータベースエンジンで、「準備」(別名「パラメーター化」または「静的」)を使用して、SQLインジェクションを防ぎます。パラメーターに渡されている場合、文字をフィルタリングする必要はありません。パラメーターで準備されているのではなく、コードで連結されているSQLを作成した場合、おそらくSQL注入のリスクがあります。使用しているデータベースのセキュリティマニュアルは、SQLインジェクションに関するセクションがある可能性が非常に高いですが、すべてを読むだけです。私はそれが1時間以内に時間がかかり、あなたがあなたのデータベースに適用されるプラクティスを最もよくフォローしているという確かな指示と自信を与えると思います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top