0

PHP バックエンドと MySQL データベースを使用したフラッシュ ゲームがあります。

ゲームをプレイするには、ユーザーはログインする必要があります。ゲームプレイ中、クライアントは定期的に更新をデータベースに送信します。たとえば、ユーザーが新しいゲーム内アイテムを購入したときなどです。

2 つの懸念があります。まず、ユーザー名とパスワードがプレーン テキストでサーバーに送信されます (ただし、データベースでは暗号化されています)。2 番目に、ログイン後、クライアントにはユーザー ID が送信され、後続のすべてのリクエストで使用されます。これらのリクエストも平文で送信されます。

これらの通信は両方とも、パケット スニッフィングの危険にさらされています。誰かがサーバーへのリクエストの構造を理解すると、独自の偽のリクエストを作成し、独自の値/ユーザー ID に置き換えて、一般的に多くの動揺を引き起こす可能性があります。

私のオプションは何ですか?SSL証明書を購入してhttpsを使用することは解決策になりますか? 公開/秘密鍵タイプのものを使用できますか?

4

1 に答える 1

0

SSL の明白な利点に加えて、欠点もあります。

  1. すべてを暗号化するか、何も暗号化しない必要があります。

    • つまり、サイトにサードパーティの広告または類似のものを表示する場合、それらすべてが安全な接続を介して利用可能であることを確認する必要があります.

    • SSL で暗号化されたトラフィックは、暗号化されていないトラフィックのほぼ 2 倍のサイズになります。これは、通常は暗号化したくない画像やその他のアセットにとって特に苦痛になります。

    • SSL 暗号化は計算コストが高く、サーバーに数 % の負荷がかかります (サーバー側の処理が多い場合を除き、心配する必要はありませんが、大規模なアプリケーションの場合、これは重要な要素です)。

  2. 証明書にはお金がかかり、更新する必要があります。

  3. Flash が SSL を介して通信し、特に暗号化された接続を使用している場合にセッション Cookie を送信しないという既知の問題がいくつかあります。

さて、通常、自分でセキュリティを実装することは絶対にしたくありません。賭け金が高い場合、私はそれを考慮しませんが、あなたの特定の状況が何であるかはわかりません。また、重要なことについてのみ、特にユーザーがそうしないため、選択的な暗号化を行う可能性を検討します.ブラウザー レベルではなく Flash でこれを行うと、「安全でない」コンテンツと「安全な」コンテンツが混在しているという恐ろしいメッセージが表示されます。

Flash で RSA 暗号化を行うための暗号化ライブラリが存在します。同様に、サーバー側で RSA を行うこともできます。おそらく、その方法は、セキュリティへの投資がプロジェクトにどれだけ利益をもたらすかに基づいて決定する必要があります。

于 2012-09-23T19:17:29.450 に答える