1

[この質問が広すぎないことを願っています。主題は非常に興味深いと思いますが、それがポリシーに違反しているかどうかを教えてください。]

私のシナリオはこれです:

  • 機密データやドキュメントも保存するLAMPWebサイトがあります
  • 登録ユーザーのみがサイトを操作でき、特定のデータとドキュメントのみを操作できます。ユーザーは$_SESSION変数に格納されます
  • ほとんどのページは一種の基本的なパーミッション制御を実装していますが、いくつかの重要なDB操作はAJAXを介して呼び出されます
  • AJAXのセキュリティは非常に不十分に実装されています。賢い人は誰でも、好きなIDを送信するリクエストを改ざんして、残忍な単純さでレコードを削除できるからです。

セキュリティに関する完全な本を求めるのは明らかに少し多すぎます(そして私はすでにこのテーマについてたくさん読んで試しています)、私の主な関心事は、AJAXページを特別な配慮で扱う必要があるかどうかです。ハッキングやその他の問題を防ぐために、ソフトウェア全体を保護します。

4

2 に答える 2

3

私の主な関心事は、AJAXページを特別な注意を払って扱う必要があるかどうかだとしましょう

あまり。それらは、他の要求とほぼ同じように扱われる必要があります。すべてのHTTPリクエストはシステムの外部から送信され、クライアントの制御下にあります(したがって、多かれ少なかれ、ユーザーが想像できるあらゆるもので構成できます)。

JSONを返す場合、完全なHTMLドキュメントを返す場合、XMLを返す場合がありますが、形式は重要ではなく、データは重要です。

要求が機密データに対するものである場合は、(サーバー上で)ユーザーを認証してから、ユーザーがそのデータの表示/編集を許可されていることを確認する必要があります。

唯一の違いは、「あなたは許可されていません」というメッセージを表示する方法です。ブラウザがXHRにデータをロードすることを期待している場合、ログインフォームを使用してHTMLドキュメントを単純に返すことはできません。応答は適切にフォーマットされている必要があり、JavaScriptがそれを処理できる必要があります。

于 2012-06-20T10:45:26.927 に答える
1

機密データやドキュメントも保存する LAMP Web サイトを持っています

機密データはできるだけ保存しないでください。特に、この情報を安全に/プライベートに保つ方法がわからない場合. たとえば、認証に OpenID などを使用します。シンプルなLightOpenIDがとても気に入っています。lightopenId の使用状況を確認するために、小さなサンプル プロジェクト/ライブラリを作成しました。openID-selectorを使用して、OpenID の使用を簡素化します。OpenID を使用する場合、安全な OpenID プロバイダーも使用します。パスワードもプレーンテキストで送信されず、https/SSL によって保護されます。

登録ユーザーのみがサイトで操作でき、特定のデータとドキュメントのみを操作できます。ユーザーは $_SESSION 変数に格納されます

うん、それがセッションの目的です。

ほとんどのページは一種の基本的な権限制御を実装していますが、いくつかの重要な DB 操作は AJAX 経由で呼び出されます

少なくともOWASP トップ 10を読む必要があります。( 10で止まらないでください。 )

AJAX セキュリティは非常に貧弱に実装されています。スマートな人なら誰でも、好きな ID を送信してリクエストを改ざんし、残忍な単純さでレコードを削除できるからです。

前のセクションを参照してください。少なくとも OWASP のトップ 10 セクションを読んでください。たとえば、多くの人が見落としているのはCSRFです。

于 2012-06-20T11:49:02.300 に答える