私はcommandnameとcommandargumentを使ってソート(フィールドと方向)を制御しています。 SQLインジェクションからのviewstateの安全性.net viewstateはSQLインジェクションから安全ですか?
1
A
答えて
0
:だから、あなたのコードでは、あなたがこのような何かをしたいです。しかし、あなたがBind Parameters(あなたはそうですか?)を使用している場合、あなたはそれについて心配する必要はありません。
悪い:
string sql = "select * from product where name = ' + ProductNameTextBox.Text + '"
グッド:
string sql = "select * from product where name = @name"
using(var command = new SqlCommand(sql, connection))
{
SqlParameter param = new SqlServerParameter("@name", SqlDbType.VarChar, 50);
param.Value = ProductNameTextBox.Text;
command.Parameters.Add(param);
command.ExecuteNonQuery();
}
4
SQL injectionは、ユーザーが入力した値が直接クエリに入力されるため、悪意のあるユーザーがセキュリティの抜け穴を利用してデータベースにアクセスしたり、データベースを壊したりすることができます。たとえば、検索するテキストボックスがあり、入力された値は実際のクエリの内部に入ります。
ユーザーがコマンド引数を動的に入力しない限り、SQLインジェクションは脅威にはなりません。
0
「SQLクエリに直接入れる」とは、パラメータ化されたクエリのパラメータであることを意味します。リテラルの場合は答えがNOです。
1
生のSQLを使用している場合は、おそらくDataTable
オブジェクトを使用している可能性があります。 DataTableを使用している場合は、DataView
を使用してデータベースから取得したデータをソートし、コントロールをDataViewにバインドできます。そうすることで、ユーザがSQLへのデータアクセスを提出することはありません。あなたがはい、その後、連結SQLへのViewStateから値を渡す場合
DataTable dt = GetData(); // pull data from DB with no sort specified
DataView view = dt.DefaultView; // Get a DataView so you can sort
view.Sort = "Col1, Col2 DESC"; // assemble sort string from your command args
MyControl.DataSource = view;
MyControl.DataBind();
関連する問題
- 1. これはSQLインジェクションから安全ですか?
- 2. SQLインジェクションからSQL Serverストアドプロシージャを安全にする
- 3. createTextNodeはHTMLインジェクションとXSSから完全に安全ですか?
- 4. SQLインジェクション:このラインは安全ですか?
- 5. このコードはSQLインジェクションから安全ですか? (そして理由)
- 6. インジェクション安全なコール()
- 7. viewstateを無効にするのはいつ安全ですか?
- 8. .NET - Queue.Enqueueメソッドは安全ですか?
- 9. Postgresql(SQLインジェクションなし)の安全SQL動的列クエリ
- 10. SQLストアドプロシージャは安全ですか?
- 11. Entity FrameworkのSQL演算子関数はSQLインジェクションに対して安全ですか?
- 12. このLINQベースの検索は、SQLインジェクション/ XSS攻撃に対して安全ですか?
- 13. 入力からのSQLインジェクション
- 14. Hibernate Criteria ApiはSQLインジェクションから完全に保護されますか
- 15. これはデータをフィルタリングしてSQLインジェクションやその他の攻撃を防ぐ安全な方法ですか?
- 16. ColdFusionでのSQLインジェクションからの保護
- 17. 完全にブラインドSQLインジェクション列の列挙ですか?
- 18. .NETから安全にCOMオブジェクトリファレンスを解放する
- 19. SQLインジェクションを防ぐために安全なデータを取得する方法
- 20. オープンで安全なTCPチャネルはどのくらい安全ですか?
- 21. JDBCは安全ですか?
- 22. window.screenは安全ですか?
- 23. カピストラーノは安全ですか?
- 24. StrToInt()は安全ですか?
- 25. PhoneGapは安全ですか?
- 26. signed_requestは安全ですか?
- 27. HttpUtility.HtmlEncodeは安全ですか?
- 28. "User.Identity.Name"は安全ですか?
- 29. SecureStringは安全ですか?
- 30. Flex:removeEventListenerは安全ですか?
あなたは、SQL文のコードを投稿してくださいことはできますか? –
これらのコマンド名や引数をクライアントに送信している場合は、そのデータがSQLとして実行される前にそのデータをサニタイズするだけで問題ありません(もちろんそうだとしたら) –