1

これはSQLインジェクションではありません

たとえば、ユーザーが Web フォームにフォーム アプリケーションを入力し、フォーム ユーザー書き込み (select * from users) の 1 つのフィールドに入力するか、危険な SQL スクリプトを記述し、データベースに設定されたデータとすべてを送信して、テーブル内のレコードなどを送信するとします。

ID | タイトル | 説明
--------------------
1 | 最初 | select * from users

それをどのように保護するのですか?または一般的にこれは危険ですか?tnx

4

1 に答える 1

5

これはSQLインジェクションではありません

これはSQLインジェクションです

それを保護する方法は?または一般的にこれは危険ですか?

asp.netにタグを付けているので、常にパラメーター化されたクエリを使用します。
参照:SqlDataSource(C#)で のパラメーター化されたクエリの使用およびC#でのパラメーター化されたSQLクエリ

編集: エンティティの使用法についてのコメントで言及されたOP以来。次の点を考慮する必要があります。

SQLインジェクション攻撃を防ぎます。-エンティティフレームワーク-MSDN

LINQ to Entitiesインジェクション攻撃:

LINQ to Entitiesではクエリの作成が可能ですが、オブジェクトモデルAPIを介して実行されます。エンティティSQLクエリとは異なり、LINQ to Entitiesクエリは文字列操作や連結を使用して構成されておらず、従来のSQLインジェクション攻撃の影響を受けません。

于 2013-01-02T10:39:07.640 に答える