2012-12-01 24 views
6

健康記録とASP.NET MVCアプリケーションがいっぱいのDBがあるとします。 誰かが "/ api/medicalRecords?$ filter = id gt 0"というURLを使用してAjaxリクエストを呼び出すとします。 これはSQLインジェクションのために開かれているようです - 10-15年前と同じです...OData SQLインジェクションに関する懸念

これはSQLインジェクションに対して標準でオープンしていることを意味しますか、それともサーバー側に依存しますかIQueryable結果とエンティティフレームワーク4)?

私はその認証機構が必要である知っている - しかし、この質問のために、認証メカニズムが利用できないと仮定し...

答えて

6

は、ODataのとSQLインジェクションについて非常に詳細な情報を提供し、このブログの記事、読みしてみてください:

http://kscottmorrison.com/tag/sql-injection/

を... ODataのは、当然のことながら、データソース接続され、射出ISNので、 の問題は、最初のところでそれを保持するだけで十分です。だから何 は... ODataのは、厳密にこの 接続が行うことが可能であるものを管理することであると非常に重要である

+0

まさに私が探していたもの...そしてGoogleはあまり役に立たなかった:-)。 これは、私が接続をどのように管理し、アプリケーションユーザーにデータを公開するかによって異なります。 – lionheart

3

WCF Data Servicesは、SQLインジェクションの可能性を排除し、あなたのフィルタから値をパラメータ化します。

データベースプロファイラで実行される実際のSQLクエリを表示することをお勧めします。

+0

だから、私は理解してみましょう - 私は、Entity Frameworkデータモデルを呼び出すためのWCFを使用する必要があるだろうか? Enitityフレームワークのデータモデルを直接使用するとどうなりますか? – lionheart

+0

これはあなたがすでにやっていることではありませんか?あなたの質問は、WCF Data Servicesの形式で提供される.NETのODataです。 –

+0

いいえ、それはASP.NET MVCアプリケーションです。私はWCFの使用を取り除きます... WCFを使用しても、条件フィールドのidが0より大きい場合でも、WCFの場合はまだ有効です。 – lionheart

関連する問題