0

まれですが、MSに褒め言葉を払わなければなりません。ASP.NETWebMethod(AJAX)の承認は、セキュリティと怠惰に対する私の願望に関しては夢です。

EncosiaのASP.NETページメソッドは、それらのニーズに完全に適合するようにする場合にのみ安全です。ASP.NETは、実際に私にとっては機能しています。ついに自由に!(高貴だが悲惨なAJAXControlToolkitから)。

とにかく、問題は、それが仕事のためだということです。LAMPが無料で提供されているときは、MSアーキテクチャを購入していません。私はAJAXを初めて使用しますが、上記のEncosiaと同じ方法でPHPへのAJAX呼び出しを承認する方法について明確な答えを見つけることができないようです。

誰かが上記のリンクでEncosiaが行うことと同等のPHPを提案できますか?

前もって感謝します!

詳細

わかりました。具体的に説明します。上記のEncosiaのソリューションでは、Webメソッドにアクセスしようとしてログインしていない人には401が拒否されます。きちんとした、きれいな、簡単。以前は、セッションデータを使用してアクセスを許可しようとしましたが、無意識のうちに同期モードを強制しました。ノノ。

私のサイトには両方が必要です。ユーザーがログインしていない場合、特定のページで401を拒否できるようにする必要があります。ログインに関係なく、誰でもajax経由で他のphpを呼び出せるようにする必要があります。

明瞭さ

結論:ログインしていない限り、特定のAJAX PHPにアクセスすることは望ましくありません。AJAXである限り、応答やその他の詳細は関係ありません。方法?

4

1 に答える 1

1

質問からはあまり明確ではありませんが、AJAX サーバー側のリッスン スクリプト (おそらく XML または JSON 出力) へのアクセスを、認証済みまたは関連ページにいるユーザーにのみ許可したい場合は、セッション識別子を追加するのはどうですか?あなたのJS AJAXリクエスト?サーバー側のスクリプトでは、現在のセッションを保持している DB テーブルに対してその識別子を確認できます。

セキュリティを強化するために、IP、Cookie などをチェックできます。これらはすべて、セッションの開始時に設定できる値です。

あなたが自問する必要がある主なことはこれです:

ユーザーがログインまたはブラウジングしている場合、データベースへのどのような種類のアクセスを本当に望んでいるか、付与する必要がありますか? 各アプリケーションには独自のニーズがあります。サーバーに AJAX リスナーを配置する場合は、Firebug (例) をざっと見て、スクリプトの場所と要求の形式を確認するだけです。これにより、潜在的なセキュリティ ホールが発見される可能性があります。インジェクション攻撃の可能性を排除するために、すべての受信リクエストが正しく処理されていることを確認してください。

于 2012-09-30T17:43:07.230 に答える