問題タブ [amf]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - AMF through a BinarySocket written in .net
I have a windows service behaving as a Binary Socket sending data to flex applications. Once I try to send strings or int's or any other native data-type, everything is working great.
I even succeeded in sending JSon from the server to the client parsing it on Flex.
I want to send AMF objects to the client.
Meaning, I have a class called User, I want to fill it with data and send it to the client, there I want it to be mapped to an object on the client.
How can I achieve this?
php - AMFPHP AMF0 および AMF3
それらの違いは何ですか?
c# - C#/MonoでAdobeAMFとの間でシリアル化しますか?
Zend_Amfを使用すると、PHPオブジェクトをAdobeAMF形式との間でシリアル化できます。C#オブジェクトをAMFとの間でシリアル化/非シリアル化するための同等のライブラリはありますか?
私はMono2.4で作業しています。
ruby-on-rails - Ruby AMF クライアントはありますか?
Ruby(Rails)でAMF0/AMF3メッセージをプッシュ/受信する方法を探しています。
私が読んだところによると、rubyAMF はサーバーとしてしか機能しません。
私が必要としているのは、クライアントが FMS/Wowza にアクセスできるようにするライブラリです。
何か案は?
ruby - RubyでAMFデータを解析するには?
したがって、 AMF を提供するための Rails プラグインが いくつかあることがわかります。ただし、Ruby 環境で AMF クライアントとして機能するために使用できるライブラリはありますか? AMF データを読み取り、それを Ruby オブジェクトにデシリアライズしますか?
そうでない場合、他の言語で構築されたツールを使用するにはどうすればよいでしょうか? Python や Java などで何かを記述し、Ruby からバッククォートを介して直接呼び出すこともできると思いますが、これより優れたオプションがないことを最初に確認したいと思います。
ありがとう!
apache-flex - ActionScript: BlazeDS/AMF およびクラス インターフェイスでの型強制の問題
Java/Hibernate/BlazeDS/Flex-Setup で型強制に問題があります。
まず、私のクラスは次のようになります。
--- ジャバ ---
インターフェイス I
(抽象) クラス A は I を実装します
クラス B は Aを拡張します
--- アクションスクリプト ---
インターフェース I
クラス A は I を実装します
クラス B は A を拡張します
すべての ActionScript クラス/インターフェイス I、A、および B で RemoteClass-Meta-Tags を取得しました。パッケージ構造とクラス/インターフェイス名はまったく同じです。
問題は次のとおりです。私の Java サービスは、Hibernate を介してデータベースからクラス B のオブジェクトを正常に取得します。インターフェイス型 I のメンバー プロパティを持つ別のクラス C を取得したので、型 B のオブジェクトを割り当てることができるはずですが、何らかの理由で次のエラー メッセージが表示されます。
TypeError: エラー #1034: Object@28b44a89 を package.name.I に変換できません
サービスで Java オブジェクト タイプを確認したところ、タイプ B で、まったく問題ないようです。型 B のオブジェクトを型 I のメンバー変数に代入できないのはなぜですか? これは私を夢中にさせています。
前もって感謝します。
apache-flex - 型付きオブジェクトを返す Coldfusion / AMF リモート処理
ColdFusion でも同じことは可能ですか? 現在、.Net/Fluorine を使用してオブジェクトをクライアントに返しています。テスト中は、select ステートメントを表す文字列と、サービスから返したいカスタム オブジェクトを渡すのが好きです。フッ素には、var 'typeName'; を設定できるクラス ASObject があります。これはうまく機能します。これが Coldfusion で可能になることを願っています。返されたオブジェクトのタイプを同様の方法で設定できるかどうかは誰にもわかりません。これは、Flash Player がそれらを同じ名前のローカル オブジェクトに変換し、オブジェクトを特定のカスタム オブジェクトに変換するためにコレクションを操作する手間を省くため、大規模なコレクションで特に役立ちます。
どうもありがとう、
iphone - iPhone で JSON の代わりに AMF を使用しますか? (Web サービス用)
iPhone はネイティブで JSON をサポートしていますが、AMF はバイナリ プロトコルであり、使用する帯域幅がはるかに少ないと想定されています。AMF を使用することは良い考えだと思いますか?
ココア (Objective-C) でこの AMF ライブラリを見つけました: http://github.com/nesium/cocoa-amf/
AMF が Flex の JSON + gzip よりも小さく高速であることを示す有名なベンチマークは次のとおりです: http://www.jamesward.com/census/
java - AMFをエンコード/デコードするJavaライブラリ
私は現在、バイナリソケット接続を介してJSONエンコードされたデータを渡すことによってFlashクライアントと通信するJavaサーバーを持っています。パケットをJSONではなくAMFとしてエンコード/デコードする方法はありますか?これを行うには、Flash Playerにネイティブサポートが必要だと思いますか?私が見つけたAMFシリアル化のすべての実装は、アプリケーションフレームワーク内に埋め込まれているようです。
同様に、Flashの接続実装とは関係なくAMFパケットをデコードできるかどうか誰かが知っていますか?
apache-flex - AMFとクロスサイトスクリプティングの脆弱性の混乱
私はSFDCに代わってデロイトによるセキュリティ監査に打撃を受けました。基本的に、flexを使用し、AMFを介して通信します。これには、(LCDSやBlazeではなく)FluorineFXを使用します。AMF応答はエンコードされておらず、誰かがAMFパラメータを操作して、これがXSSの脆弱性であるJavascriptを挿入できるためだと言われています。エラーメッセージで渡されたJSをエコーする可能性のあるAMF応答が、ブラウザまたはその他の問題でどのように実行されるかを理解するのに苦労しています。私はHTMLとJSを使用したXSSの経験が豊富ですが、AMFでタグ付けされるのを見るのは少し驚きでした。私はFluorineFxチームと連絡を取り合っており、彼らも困惑しています。
AMFライブラリが応答データをエンコードしているのを見て驚いたでしょうが、フッ素は確かにエンコードしていません。PortSwiggerやIBMAppScanなどのセキュリティアプリケーションは、ツールチェストにこのタイプのテストを組み込んでいるように見えます。AMFでこの脆弱性に遭遇しましたか?XSSの問題がどのように現れるかを説明できますか?ちょっと興味があるんだけど。議論が存在する場合、私はこれから抜け出す方法を議論するか、穴にパッチを当てる必要があります。FlexでのAMFの使用法を考えると、ある程度の洞察があるのではないかと思いました。
追加情報 ...
それで、実際のベンダーであるPortSwiggerからこれについてもう少し詳しく説明します。私は彼らに質問を投げかけました、そしてネット、ネット、彼らはこのタイプの攻撃が非常に複雑であることを認めます。当初、彼らはこれを重大度の高いセキュリティの問題として分類していますが、現在、彼らの調子は変わっていると思います。とはいえ、その視点は面白いと思うので、皆さんのために彼らの回答の内容を投稿したいと思いました。
---この問題に関するPortSwiggerから---
メッセージありがとうございます。答えは、これは潜在的に脆弱性ですが、悪用するのは簡単ではないということだと思います。
確かに、この問題は、応答がAMFクライアントによって消費される場合には発生しませんが(何か馬鹿げたことをしない限り)、攻撃者が応答がブラウザーによって消費される状況を設計できる場合に発生します。ほとんどのブラウザはHTTPContent-Typeヘッダーを見落とし、実際の応答コンテンツを確認します。それがHTMLのように見える場合は、そのように処理します。歴史的に、人々がHTML / JSコンテンツを他の応答形式(XML、画像、他のアプリケーションコンテンツ)に埋め込んだ攻撃が数多く存在し、これはブラウザーによってそのように実行されます。
したがって、問題は応答の形式ではなく、応答を生成するために必要な要求の形式です。攻撃者が有効なAMFメッセージを含むクロスドメインリクエストを設計することは簡単ではありません。XSSのような動作を含むXML要求/応答でも同様のことが起こります。ブラウザによってHTMLとして扱われる有効なXML応答を作成することは確かに可能ですが、課題は、HTTPボディのクロスドメインで生のXMLを送信する方法です。これは標準のHTMLフォームを使用して実行できないため、攻撃者はこれを実行するために別のクライアントテクノロジまたはブラウザの癖を見つける必要があります。歴史的に、このようなことは、ブラウザ/プラグインベンダーによって修正されるまで、さまざまな時点で可能でした。現時点でそれを可能にするものは何も知りません。
つまり、これは理論上の攻撃であり、リスクプロファイルに応じて、完全に無視するか、サーバー側の入力検証を使用してブロックするか、サーバーで出力をエンコードしてクライアントで再度デコードすることでブロックできます。
Burpは、この問題の緩和策としてAMFリクエスト形式にフラグを立て、影響を低にダウングレードする必要があると思います。これを修正します。
お役に立てば幸いです。
乾杯PortSwigger
---監査に関する詳細---
portSwiggerが行うことは、必ずしもバイナリペイロードを混乱させることではなく、リクエストを送信するためにハンドラーに送信される実際のAMFパラメーターを混乱させることです。たとえば、これは監査の抜粋であり、リクエストに対するAMF応答の一部を示しています...
そこにある「アラート」スクリプトに注意してください...彼らが行ったことは、呼び出すメソッドを含む渡されたパラメーターの1つ、つまり「com.Analytics.ca.Services.XXX」にJSで囲まれたスクリプトが追加されたことです。そうすることで、JSはエラーメッセージで返されますが、そのJSが実行に近づくために発生しなければならないことがたくさんあります。せいぜい間接的な脅威のようです。
-セキュリティ監査人の最新の視点-
私はより大きなチームと話し合いましたが、それは有効な攻撃であると私たちは皆信じています。PortSwiggerが最初の段落で述べているように、理論的にはcontent-typeをx-amfに設定し、ブラウザーでレンダリングされないことを望んでいるため、ほとんどのブラウザーはこの要求を無視してとにかくレンダリングします。ベンダーは、コンテンツタイプが設定されているという事実に大きく依存していると思います。ただし、IEやSafariの一部のバージョンなどの一般的なブラウザはこれを無視します。
攻撃は、CSRFまたはその他の形式のXSS攻撃を悪用することで簡単にトリガーできます。