この回答は、ORM が SQL インジェクションから私を保護しない方法を説明していますが、「間違ったことをする」対「正しいことをする」方法については完全にはわかりません。
SQL インジェクションを実行して軽減する方法について、誰かが EntityFramework または Telerik OpenAccess で例を提供できますか?
この回答は、ORM が SQL インジェクションから私を保護しない方法を説明していますが、「間違ったことをする」対「正しいことをする」方法については完全にはわかりません。
SQL インジェクションを実行して軽減する方法について、誰かが EntityFramework または Telerik OpenAccess で例を提供できますか?
オブジェクト モデルを介して通信する限り、成熟した ORM には SQL インジェクションの脆弱性がありません。したがって、実行するメソッド(Entity Frameworkを使用)がある場合
dbContext.Companies.Where(c => c.Name == someParameterFromUI)
ユーザーは のような検索パラメーターを入力できます"'x'; drop table Users;"
が、クエリ エンジンはクエリをパラメーター化し、唯一の結果は企業が見つからないということです (名前を作ったときに大笑いした企業でない限り)。
しかし..
成熟した ORM にはバックドアがあり、必要に応じて脆弱なコードを記述できます。NHibernate と EF (OpenAccess はわかりません) は、生の SQL クエリをデータベースに送信する方法を提供します。そのため、安全でないものを好きなだけ使用できます。ただし、そうすることで、ORMを使用しなくなったと言いたいです。ORM ツールがユーザーフレンドリーな API で親切に公開するデータベース接続のみを使用しています。