この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 3928|答える: 3

[出典] EF 6はネイティブのSQL文やパラメータインジェクション問題を実行します

[リンクをコピー]
掲載地 2023/06/14 21:14:48 | | | |
要件:プロジェクトはEF ORMフレームワークを使ってデータベースの追加、削除、修正、チェックを行いますが、複雑なクエリに対してLinqやLambdaを使えない可能性があるため、クエリにはEF 6を使ってネイティブSQL文を実行する必要があります。

生SQLクエリ(EF6):ハイパーリンクのログインが見えます。

SQL文はwhere条件を保持する必要があるため、パラメータ値はURLパラメータを通じて渡されます。


まず、SQL文は文字列連結を使ってクエリを行います。以下のように。



コードは以下の通りです:

データベースが実行するSQL文は以下の通りです:

[分類]から名前を選択してください。ここで名前=「モバイル開発」; 選択1; --'

通るSQL文のスプライス方法は注入のリスクがあります

SQLインジェクション攻撃を防ぐためにクエリをパラメータ化することでコードを修正し、コードは以下の通りです。



exec sp_executesql N'SELECT Name FROM [分類] WHERE Name = @n', N'@n nvarchar(17)', @n=N'Mobile Dev'''; 選択1; --'




EF Coreは直接スプライシングを使うのではなく、それをパラメータ化されたSQL文に変換します。 参考文献は以下の通りです:

EFコアシリーズ(5)はSQL文やビュー、ストアドプロシージャを実行します
https://www.itsvse.com/thread-9565-1-1.html

(終わり)





先の:洞察:ブログガーデンからブロガーの署名を見かけました
次に:SQLMAP浸透ツールのSQLインジェクションテストをご利用ください
 地主| 掲載地 2023/06/17 11:11:50 |
SQLMAP浸透ツールによるSQLインジェクションテストのテスト
https://www.itsvse.com/thread-10611-1-1.html
 地主| 掲載地 2023/06/30 20:47:17 |
 地主| 掲載地 2025/01/02 12:10:38 |
[実戦]。 NET/C# SQLクエリジェネレーター sqlkataベース
https://www.itsvse.com/thread-10370-1-1.html
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com