RemoteObject を介して Zend Framework の Zend Amf に接続する Flex フロントエンドがあります。これは、クライアント レイヤー (Flex) とアプリケーションおよび永続レイヤー (LAMP with Zend Framework) の間でデータを転送する唯一の手段です。セキュリティに対処できるいくつかの方法は次のとおりです。
- services-config.xml ファイルで mx.messaging.channels.SecureAMFChannel を使用し、Flash Player が HTTPS ラッパーにロードされ、実際には AMF プロトコルが HTTP の上に階層化されているため、HTTPS を使用していることを確認することで、TLS に対処できます。
- RemoteObject には、ユーザー関連データを保護するために AMF 認証ヘッダーを渡すことができる setCredentials メソッドがあります。TLS が実際に安全であると仮定すると、ユーザーの認証後にエンドポイントでメソッドを公開できます。
- crossdomain.xml を適切に設定することで、クロスサイト スクリプティングやその他のFLASH脆弱性から保護できます
別の AMF コンシューマからエンドポイントを保護する方法を教えてください。たとえば、Flex クライアント以外に別の AMF コンシューマ (Flash ではないため、crossdomain.xml および Flash サンドボックス セキュリティに拘束されていない) があり、エンドポイントを認識していた場合、エンドポイントが公開するメソッドの使用を阻止するものは何でしょうか?
私の知る限り、Zend Amf エンドポイントに対して Flex アプリケーションを認証する方法が基本的に必要です。AMF 消費者認証の後、特定のデータ (ユーザー認証など) を保護するために、上記で説明したセキュリティ メカニズムのいくつかがあります。Flex SWF は逆コンパイルに対して脆弱であるため、ある種の認証メカニズムを Flex SWF に組み込むことはできません (SWF は信頼できません)。機密データはユーザー認証によって保護されていますが、保護されていないデータはほとんど公開されていませんが、私が知る限り、完全に公開されています。