1

私は最初に、flashとphpの両方に比較的慣れていないということから始めます。

現在、ユーザーログインとパスワード(php)を使用してサイトを設定しています。ログインが成功すると(mysqlへのphpクエリ)、ユーザーがログインし、ユーザー名と他のいくつかの変数がセッション変数として保存されます。

私がやろうとしているのは、フラッシュでオンラインクイズを作成することです。クイズはWebページに埋め込まれます。クイズを使用しているアカウントを知るには、セッション変数からユーザー名を取得してフラッシュに渡す必要がありました。ユーザー名をフラッシュプログラムに安全に渡すことはできますか?もしそうなら、どこでより多くの情報を探すべきですか?

ありがとう

4

4 に答える 4

2

Flash には、アクション メッセージ フォーマット(AMF) と呼ばれるもののサポートが含まれています。これは、Flash アプリケーションがサーバー上のメソッドを呼び出して応答を受信するために使用できるプロトコルです。

AMF はバイナリ プロトコルであり、PHP (および多数の PHP フレームワーク) を含むさまざまな言語でのサーバー側サポートを備えています。Flash アプリケーションが HTTPS リクエストを作成できるのであれば、HTTPS 経由で AMF リクエストを作成できるはずです。

でも…「安心」?

AMF データがネットワーク上で傍受できる場合、平文と同様にデシリアライズできます。Flash プラグインはクローズド ソース アプリケーションであるため、ソースを確認して自分でコンパイルし、承認していないことを実行していないことを確認することはできません。

「安全」をどのように定義しますか? 防御したい攻撃や情報漏えいの種類は正確には何ですか?

アプリケーションの場合、おそらく戦略は、ブラウザーにユーザーを認証させ、PHP セッションを確立させることです。次に、Flash アプリケーションをロードするときに、セッション cookie の値を変数として Flash アプリケーションに渡します。その後、Flash アプリケーションは、Cookie ヘッダーを含む独自の HTTP/HTTPS リクエストを作成できるため、そのリクエストを確立済みのセッションの一部として識別できます。

これを処理するもっと簡単な方法があるはずですが、Flash に関する私の知識も限られています。

この取り組みに Flash を使用しないことを検討すべきであるというコメントに同意します。

于 2012-06-03T03:04:11.210 に答える
1

Only way to make such quiz secure'ish would be:

  • Flash application, at the end of quiz, sends all the answers (not the result, just the answers) to the PHP side (flash can perform XHR)
  • PHP side of things can verify the users session (if he started the quiz, if he spent more then 1 second on the quiz .. such details)
  • PHP script sends back the response to the Flash-thing with the results or an error code
于 2012-06-03T10:59:40.567 に答える
1

それが見過ごされない限り、あなたはどのような種類の攻撃を防ごうとしていますか、あなたはそれに対していくら支払う準備ができていますか?

逆の順序で; サーバーにHTTPS経由でページを提供させるには、認定機関から証明書を購入する必要があります。これは無料のサービスではありません+有効期限が切れます。暗号化された接続を使用してページを提供すると、データとトラフィック(基本サイズのほぼ2倍)をエンコードするために必要な時間とメモリによってサーバーに負担がかかります。また、すべての広告プロバイダーが安全な接続と安全でない接続の両方を介して広告を配信するわけではないため、広告や他のサイトの画像など、他の人のコンテンツを埋め込むのは困難です。あなたのサイトが広告を表示することから利益を得るように計画しているなら、これは潜在的に目を見張るようなものかもしれません。

攻撃の種類:誰を誰から保護しますか?Flashが何らかの形でアプリケーションロジックを潜在的な攻撃者に公開し、攻撃者がシステムの弱点を悪用できるようになることを恐れていますか?たとえば、Flashを使用してサーバーにアップロードしたり、状況によってはそれを使用してサーバーのコードをロードしたりする場合に、これが可能になる可能性があります。

または、あるユーザーが別のユーザーから送信されたものを盗聴できる場合など、ユーザーを別のユーザーから保護しようとしていますか?

上記の2つの程度と組み合わせもあります。

なぜユーザーの名前を彼らに返す必要があるのですか?彼らはすでにそれを知っているに違いないと思います。それとも、Flashがユーザー名を送信する必要があるということですか?この場合も、危険は正確には何ですか?送信される名前を知っている他のユーザーですか、それともユーザー自身が「間違った」名前を送信できるのでしょうか。「間違っている」とは、一度にいくつかのことを意味します。間違っている-別のユーザーの名前、または「適切な」ユーザーの名前である可能性がありますが、既存のセッション内ではなく別のセッションを開始する方法で送信されます(別のタブ/ブラウザからログインします)。

いくつかの追加情報:証明書の料金を支払う必要があるのは事実ですが、裸のブラウザーの機能に依存するよりもFlashを使用する方が有利です。サイト全体をHTTPS経由で提供することで見込み客を感動させるほどセキュリティに関する主な懸念が少ない場合は、通常、FlashにHTTPSを実装できますが、これには多くの作業と問題の理解が必要です。SSL(HTTPSを介してページを提供するために使用される暗号化)は、RSAなどの2つの部分からなるキーを使用した双方向エンコーディングの原則に依存しています。公開鍵が与えられた場合、データを暗号化することしかできませんが、データを復号化するには秘密鍵が必要です。したがって、ユーザーに公開鍵を送信しても安全です。公開鍵は、後で送信するデータの暗号化に使用できます。このような場合、サーバーとユーザーの間でユーザーからサーバーへの方向に送信されるデータを他人が盗聴することは事実上不可能であり、公開鍵を持っていても、データを復号化することはできません。しかし、これは、サーバーがクライアントに送信する情報を潜在的に知ることを妨げるものではありません。これは、常に既知であり、隠すことが不可能である可能性があるものとして扱う必要があります。

于 2012-06-03T05:03:56.023 に答える
0

「PHP から」Flash にデータを送信する方法はありますが、安全な方法はありません。

データを Flash に「送信」するには、次のいずれかが必要です。

  • Flash 要素と同じページに (またはそれを表示している要素に) 印刷します。ただし、他のユーザーは、印刷された情報を編集したり、それを使用して Flash に送信されたデータを操作したりできます。

  • Flash に HTTP(S) リクエストを作成させ、そこからデータを取得します。Flash ドキュメントは逆コンパイルされる可能性があるか、データが傍受される可能性がある (さらにはスプーフィングされる可能性がある) ため、これも機能しません。

于 2012-06-03T02:39:38.303 に答える