2009-05-11 14 views
3

グリッド内に商品を表示するアプリケーションを開発しています。グリッドには無効/有効アイコンを持つ列があり、そのアイコンをクリックすると、AJAXを介してその特定の製品を有効/無効にするためのページmanageProduct.aspxへのリクエストが発生します。私は、パラメータとしてのproductIDを渡していますので、誰か(プロのハッカーやウェブ開発者)が入手しやすいである(このURLを取得することができれば、最終的なAjaxのクエリは、ASP.NETでAJAXリクエストを保護する方法は?

http://example.com/manageProduct.aspx?id=234 

ようである私のAjaxのリクエストで

私のjavascriptファイルから)、彼はループとして実行され、すべての私の製品を無効にするスクリプトを作ることができます。

誰かがそのページを直接実行しようとすると、エラー(適切なメッセージ「あなたは許可されていません」など)を返すメカニズムや手法、そうでなければ、ページが希望のページから実行された場合、どこに商品リストが表示されているのかなど、正しく表示されます。

基本的に私はAJAX要求を保護するために誰も直接実行できません。 PHPで

PHPの私の同僚は、ページのrefrerをチェックして、このPHPページを確保します。以下のように:

$back_link = $_SERVER['HTTP_REFERER']; 

if ($back_link =='') 
{ 
    echo 'You are not authorized to execute this page'; 
} 
else 
{ 
    //coding 
} 

どのようにASP.NETで同じまたは異なる他はなく、安全なtechique(C#の)に教えてください、私は、Ajaxリクエストを作成するための私のアプリではjQueryを使用しています。彼らは簡単に詐称することが可能と何をするにしても

おかげ

+1

アプリケーション自体のユーザーをどのように認証しますか?あなたはあなたのajax呼び出しに同じテクニックを使用できるはずです。 – Oded

+0

「ユーザー名」と「パスワード」でユーザーを認証しています。しかし、私はログインに成功した後、セッション変数としてユーザー名を保存しています。場合は、任意のユーザーが私のサイトにattcked attemted? – Prashant

答えて

3

は、「HTTP_REFERER」のようなHTTPヘッダーに依存しないでください。

4

リファラーの使用については忘れてください。偽造は簡単です。要求が直接行われているのか、それとも何か他のものに対する応答であることを確実に伝える方法はありません。

URLを要求して不正なユーザーがシステムに影響を与えないようにするには、承認レベル(HTTP基本認証またはCookieで実装されているパスワードシステムなど)を判断するためにスマートなものが必要です。

+0

私はASP.NETのマスターではありません。私は初心者レベルですから、私はajaxのreuqestsを安全にするためにどのような方法を使うことができるのかを教えてください。 – Prashant

+0

このテクニックは他の種類の要求とまったく同じです。例えばユーザー名、パスワード、セッション – Quentin

2

あなたのユーザがログインしていることをサービスにチェックインする必要があります。安全なログインシステムを作成することは簡単ではありませんが、それはあなたがしなければならないことです。

また、逐次製品IDを使用しないでください。uniqueidentifierを使用してください。表示する整数製品idを使用できますが、説明したような他の用途ではproduct uniqueidentifier/guidを使用します。

関連する問題