3

MVC4 シングルページ フロント エンドと WebAPI を使用して、JSON クエリ データをブラウザーに直接返す別のマシンでアプリケーションを構築しています。認証は、現在のユーザーの一連の「canDoX」権限を定義するユーザー オブジェクトが構築される MVC 側で行われます。

問題は、ページ .js からリクエストを受け取ったときにユーザーを再認証および承認することなく、これらのアクセス許可に基づいて WebAPI アクションへのアクセスを保護する方法です。

現状では、ユーザーは API について知っている必要がありますが、知っていれば、URL をハッキングして、必要なデータを照会できます。'/api/myController/myRestrictedAction/123'

何か案は?単一ページのアイデアを捨てて、MVC コントローラーから webAPI を呼び出すだけですか?

4

1 に答える 1

3

HTTP はステートレスです。すべてのリクエストで承認と認証を実行する必要があります。これは、そのページのさまざまなリソースへのページ アクセスごとに何度も発生することがよくあります。

あなたの例で'/api/myController/myRestrictedAction/123'は、あなたが誰かに公開しているリソースです。そのリソースにアクセスするユーザーがそのリソースにアクセスできるかどうかは、あなた次第です。

ユーザーがランダムなエンドポイントにアクセスすることを「URL のハッキング」と考えるのではなく、ユーザーがアクセスできないはずのものを要求してアクセスできるようにしたのは、実際にはアプリケーションのバグです。

于 2013-05-01T19:41:41.593 に答える