ストアドプロシージャを使用してSQLデータベースにデータを挿入するためのベストプラクティスパターンに従う人がいるかどうかは疑問でした。つまり、検証済みのデータをストアドプロシージャに渡すためにはどのような手順を取るべきですか。asp.netでストアドプロシージャを使用してデータを挿入するベストプラクティス
答えて
ORMを使用しているのか、直接データベースアクセスを使用しているのかによって、これを行うさまざまな方法があります。 1つは、SPパラメータを作成するためにSqlParameterオブジェクトを使用する必要があることです。私はあなたが上の層でストアドプロシージャの実装を検証のための任意のロジックを埋め込むことをお勧めがあり、さまざまなオプションを備えたSqlParameterを作成するためのさまざまな方法がありますが、最も簡単な形式は
SqlParameter[] prms = new SqlParameter[1];
prms[0] = new SqlParameter("@userid", "Bob");
しかし、JavaScriptやSQLコードをテキストボックスに渡すと、JavaScriptやSQLコードをトラップできますか? たとえば、ユーザーに電子メールメッセージを書くことを許可しています。メールを送信する前に、そのメッセージもdbに保存しています。しかし、ユーザー/ハッカーがSQLで完全に機能するコードを書いて、自分のサイトをハックしたり、データを破損したりすることは望ましくありません。私はSQLのパラメータを使用していますが、それは安全ですか? – Mohit
パラメータを使用すると、ハッカーはSQLインジェクションを実行できません。 –
コディーCさんから与えられた声明が私にとっては十分であるとか、他にも何かをする必要があるのですか? – Mohit
です。このようにして、実装と公開にもっと柔軟に対応できます。簡単な例として、検証ライブラリを複数のプロジェクトに再利用することができます。ほとんどのORMライブラリは、コンパイル時に適切な型の割り当てを検証することで、最も単純な形式で検証をサポートします。
より上のトランザクションロジックをストアドプロシージャに実装することをお勧めします。
- 1. ASP.netを使用してpostgreSQlデータベースのデータをEXTJsグリッドに挿入
- 2. データベースなしでasp.netを使用してグリッドビューにデータを挿入する方法
- 3. ストアドプロシージャを使用してデータベースにリストレコードを挿入する
- 4. ユニットテスト用に挿入した後にデータをクリーニングするベストプラクティス
- 5. asp.net - sqldatasource - detailsview - レコードを挿入するためにストアドプロシージャを使用する
- 6. PHPでMDB2を使用してBLOBデータを挿入する
- 7. C#で呼び出されるストアドプロシージャを使用してBytearrayを挿入する
- 8. .netによるDB2のストアドプロシージャを使用したBLOBデータの挿入
- 9. ストアドプロシージャを使用してフロントエンドなしでSQL Serverにファイルを挿入します。
- 10. SQLクエリを使用してセサミデータベースにデータを挿入する
- 11. Laravel 5.2を使用してピボットテーブルにデータを挿入する
- 12. HL7メッセージを使用してSQL Serverにデータを挿入する
- 13. ionicを使用してSQLiteにデータを挿入する方法
- 14. system-uuidを使用してDBにデータを挿入する
- 15. ラジオボタンとif else文を使用してデータを挿入する
- 16. Asp.netデータをsqlserverに挿入する
- 17. ストアドプロシージャを使用してvarcharフィールドにデータを挿入する際に問題が発生する
- 18. ASP.NETで[送信]ボタンを使用して挿入できない?
- 19. Entity Frameworkモデルを使用してデータを挿入します。
- 20. Webサービスを使用してサーバーにデータを挿入します。
- 21. オプションのパラメータを含むストアドプロシージャの挿入を使用する
- 22. Pythonを使用してmysqlにデータを挿入できない
- 23. ASP.net MVCでAjaxを使用して挿入MVC
- 24. ASP.netボタンでVBスクリプトを使用してASP.Netテキストボックスにデータを入力する
- 25. グリッドビューのチェックボックスを使用して選択したデータを挿入
- 26. onclick機能を使用して入力フィールドにデータを挿入する
- 27. RPostgreSQLでパラメータを使用する方法(データを挿入する)
- 28. clojure.java.jdbcを使用してpostgresql jsonカラムにデータを挿入
- 29. SignUp形式:Android 4.0を使用してMySQLにデータを挿入
- 30. PHPを使用してmysqlにデータを挿入
私はあなたの質問を理解していません。明らかな答えは、「使用する前にデータを検証する」ですが、それはあまりにも明白な意味です。どうか明らかにしてください。 –
データは取得時に検証されていないのですか? – Martin
いいえ私は、サイズとデータ型について、データを検証しています。しかし、ハッカーがJavaScriptコードやSQLコードを追加しようとするとどうなりますか?どうすればこれらのものを罠に入れることができますか さらに、このステートメントをパラメータの入力に使用するだけでもかまいません。 cm.Parameters.AddWithValue( "@ UserID"、TxtID.Text.ToString()); 私はちょうどこれらのもののための良い練習パターンがあるかどうかを知りたいと思っていました。 – Mohit