2010-12-15 12 views
2
  1. SQLインジェクションを防ぐのに役立つパラメータ化されたクエリ回数を使用しました。 しかし、私は基本的なロジックがパラメータ化されたクエリの中で働いているかどうか知ることができるかどうか疑問に思っていた SQLインジェクションを防ぐためには非常に簡単かもしれませんが、私はそれの基本は何かをGoogleを検索しようとしたが、Asp.netでパラメータ化されたクエリを使用する方法の例を見つけたたびに。
  2. 私は、SQLインジェクションで使用される( '、 - などの)特殊文字を停止する特別なクラスを作成することについて知っていますが、SQLインジェクションを完全に防止する特殊文字のみを停止しますか?
  3. 最後に、.netのパラメータ化されたクエリはSQL注入を完全に停止できますか?
+0

パラメータ化されたクエリは、SQLインジェクションの解決策です –

+0

あなたのコメントのおかげで... – user426306

答えて

2

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

データベースレベルのPostgreSQL manual explains basics about parametrized queries

一方、パラメータ化されたクエリでは、ロケールに敏感なデータを簡単に渡すことができます。 たとえば、ユーザーは10進数10000を入力しますが、サーバーでは100.00の値が必要です。

0

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

関連する問題