ストアドプロシージャを使用して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. ストアドプロシージャを使用してテンポラリテーブルからデータを挿入する
- 2. asp.netを使用してSQL ServerのストアドプロシージャにExcelシートデータを挿入
- 3. ASP.Net MVCでAJAXを使用してデータを挿入する
- 4. ASP.NETを使用してデータベースにデータを挿入する
- 5. ASP.netを使用してpostgreSQlデータベースのデータをEXTJsグリッドに挿入
- 6. ASP.NET MVCを使用してSQLサーバーにExcelデータを挿入
- 7. データベースなしでasp.netを使用してグリッドビューにデータを挿入する方法
- 8. ストアドプロシージャを使用してデータベースにリストレコードを挿入する
- 9. ストアドプロシージャを使用してmutilpe値を挿入する
- 10. Asp.net C#でjQuery Ajaxを使用してデータを挿入する[データベースのデータベース]
- 11. ユニットテスト用に挿入した後にデータをクリーニングするベストプラクティス
- 12. asp.net - sqldatasource - detailsview - レコードを挿入するためにストアドプロシージャを使用する
- 13. Ajaxを使用してデータを挿入
- 14. C#で呼び出されるストアドプロシージャを使用してBytearrayを挿入する
- 15. SQL Server:動的テーブル名を使用してストアドプロシージャを挿入
- 16. BizTalkでストアドプロシージャを使用してSQL Serverテーブルを挿入/更新する
- 17. ストアドプロシージャを使用してフロントエンドなしでSQL Serverにファイルを挿入します。
- 18. PHPでMDB2を使用してBLOBデータを挿入する
- 19. SQL Serverのストアドプロシージャを使用してselectステートメントに挿入
- 20. asp.netを使用してWebフォームデータをms-accessに挿入する
- 21. .netによるDB2のストアドプロシージャを使用したBLOBデータの挿入
- 22. オブジェクトのリストをSQL Serverストアドプロシージャに渡し、asp.netコアを使用してレコードを挿入します。
- 23. ASP.NETで[送信]ボタンを使用して挿入できない?
- 24. PHPを使用してストアドプロシージャのSQL Server 2012にデータを挿入することができない
- 25. クラスとストアドプロシージャを使用してC#(Visual 2015)でSQL Server 2014にデータを挿入する
- 26. Asp.netデータをsqlserverに挿入する
- 27. テーブル型のストアドプロシージャをINパラメータとして使用してVarchar2データを挿入できません
- 28. java Netbeansで挿入クエリを使用してmsデータベースにデータを挿入
- 29. Asp.net内でlucene.netを使用するベストプラクティス
- 30. ストアドプロシージャを使用してvarcharフィールドにデータを挿入する際に問題が発生する
私はあなたの質問を理解していません。明らかな答えは、「使用する前にデータを検証する」ですが、それはあまりにも明白な意味です。どうか明らかにしてください。 –
データは取得時に検証されていないのですか? – Martin
いいえ私は、サイズとデータ型について、データを検証しています。しかし、ハッカーがJavaScriptコードやSQLコードを追加しようとするとどうなりますか?どうすればこれらのものを罠に入れることができますか さらに、このステートメントをパラメータの入力に使用するだけでもかまいません。 cm.Parameters.AddWithValue( "@ UserID"、TxtID.Text.ToString()); 私はちょうどこれらのもののための良い練習パターンがあるかどうかを知りたいと思っていました。 – Mohit