0

次のような ActionResult があるとします。

[HttpGet]  
public ActionResult Cities(string q)  
{  
  //Return a list of cities that matches parameter
}

一致する都市のリストを取得するための独自の小さな REST ベースのサービスであるかのように、これを使用して、私のサイト以外のすべてのサイトを停止するにはどうすればよいですか? リファラーをチェックすることが唯一の方法ですか?それとも何か良いアイデアはありますか?

4

4 に答える 4

0

それがHttpGetリクエストであるという考えにどの程度結びついていますか?HttpPostの場合は、AntiForgeryTokenとその属性を使用して、正しいページからのものであることを確認できます。これは基本的にcookieメソッドを使用していますが、すべてうまくまとめられています。

于 2010-09-20T10:13:56.507 に答える
0

他のサイトがこのアクションにアクセスするのを防ぐ唯一の方法は、ある種の認証メカニズムを使用することです。machineKeyで暗号化されたCookieを使用して、リクエストが同じドメインからのものであることを確認できます。これを機能させるには、認証Cookieを発行するログインページが必要です。

于 2010-09-18T07:44:13.570 に答える
0

独自のプロジェクト内でのみ REST を使用しているのに、なぜ REST を使用するのですか?

たとえば、global.asax でメソッドを作成します。すべてが到達できます。

また、これをjquery/jsonに使用していますか?

この場合、 [HttpPost] と $.post が役に立ちます。

于 2010-09-17T19:29:15.497 に答える
0

あなたはそれについてどのくらい心配していますか?誰かが十分に決定している場合、リファラーは偽造できます。

なんらかの形式のユーザー セッション管理が既に行われていますか。ある場合は、それを使用します。ただし、別のサイトからの訪問者が自分のサイトにもログインしている場合は防弾ではありません。

IF not ... ターゲット アクションに存在する (かつ有効な) 短い有効期限を持つ Cookie を元のページに設定することにより、同等のものを実装します。

于 2010-09-17T19:37:45.950 に答える