1

RemoteObject を介して Zend Framework の Zend Amf に接続する Flex フロントエンドがあります。これは、クライアント レイヤー (Flex) とアプリケーションおよび永続レイヤー (LAMP with Zend Framework) の間でデータを転送する唯一の手段です。セキュリティに対処できるいくつかの方法は次のとおりです。

  1. services-config.xml ファイルで mx.messaging.channels.SecureAMFChannel を使用し、Flash Player が HTTPS ラッパーにロードされ、実際には AMF プロトコルが HTTP の上に階層化されているため、HTTPS を使用していることを確認することで、TLS に対処できます。
  2. RemoteObject には、ユーザー関連データを保護するために AMF 認証ヘッダーを渡すことができる setCredentials メソッドがあります。TLS が実際に安全であると仮定すると、ユーザーの認証後にエンドポイントでメソッドを公開できます。
  3. crossdomain.xml を適切に設定することで、クロスサイト スクリプティングやその他のFLASH脆弱性から保護できます

別の AMF コンシューマからエンドポイントを保護する方法を教えてください。たとえば、Flex クライアント以外に別の AMF コンシューマ (Flash ではないため、crossdomain.xml および Flash サンドボックス セキュリティに拘束されていない) があり、エンドポイントを認識していた場合、エンドポイントが公開するメソッドの使用を阻止するものは何でしょうか?

私の知る限り、Zend Amf エンドポイントに対して Flex アプリケーションを認証する方法が基本的に必要です。AMF 消費者認証の後、特定のデータ (ユーザー認証など) を保護するために、上記で説明したセキュリティ メカニズムのいくつかがあります。Flex SWF は逆コンパイルに対して脆弱であるため、ある種の認証メカニズムを Flex SWF に組み込むことはできません (SWF は信頼できません)。機密データはユーザー認証によって保護されていますが、保護されていないデータはほとんど公開されていませんが、私が知る限り、完全に公開されています。

4

2 に答える 2

0

何らかの認証が提供されない限り、AMFクライアントは誰がそれらを呼び出したかを知ることができません。Flexが送信するHTTPリクエストは、Flex以外の手段でエミュレートでき、正しく指摘したように、埋め込まれたキーを抽出できます。したがって、これに対する一般的な解決策はありませんが、HTTPS接続用のクライアント証明書を提供し、サーバーにクライアント証明書をチェックさせると、おそらく何かが解決する可能性があります。

于 2010-01-20T01:18:31.403 に答える
0

誰かがエンドポイントに任意の HTTP リクエストを送信するのを防ぐことはできません。Flex アプリケーションがサーバーに対してユーザーを認証し、リクエストに適切な資格情報/セッション ID が含まれている場合にのみサーバーが機密データを提供する場合、すべて問題ありません。できないことは、ユーザーを認証し、ユーザーが認証されたことをクライアント内に保存することだけです。HTTP はステートレス プロトコルであるため、サーバーは各リクエストを個別に承認できる必要があります。「通常の」Web サイトと AJAX の場合も同じです。

于 2010-01-16T20:46:06.620 に答える