1

私はiphoneアプリケーションを作成しています。

アプリケーションでは、データベースと通信する必要があります。調べてみたところ、最善の方法は iPhone -> webserver -> mysql であることがわかりました。

また、https を使用すると、トラフィックはプレーンテキストになりません。

しかし、セキュリティが心配です。

たとえば、現在のセッションを Web サーバーで認証する auth.php があるとします。その後、ゲームか何かがあり、その結果を registerresult.php に登録すると、ユーザーは認証を介してログインできます。 .php を Web サイト経由でダウンロードし、独自の結果を registerresult.php に登録します。

(私は POST メソッドを使用してデータを投稿しています)

問題がわかりますか?

私はこれを見てきました: http://www.icodeblog.com/2009/10/29/iphone-coding-tutorial-creating-an-online-leaderboard-for-your-games/2/

しかし、それは本当に良い方法ですか、それとももっと良い方法がありますか? (各ステートメントでハードコードされた「キー」を送信します)

httpsが使用されていない場合、そのキーはとにかくプレーンテキストになりますか?

4

2 に答える 2

2

(回答へのアップグレード)

完全なセキュリティを実現することは不可能です。適切に防御するためには、脅威が何であるか (誰からのものか、どれだけリソースがあるかなど) を常に考慮する必要があります。

たとえば、結果データをregisterresult.phpページに送信する前に暗号で署名したとしても、署名キーはユーザーの電話のアプリに埋め込まれている必要があります。したがって、決心したクラッカーがキーを抽出して、偽造された結果を送信する可能性があります。その性質の脅威を打ち負かすために、状態情報がそこに保持されるように、サーバー上でゲームを実行する必要があると思います。

ただし、iPhone ゲームをクラックするためにそこまでのことをする人はまずいないでしょう (おそらくそのゲームが信じられないほど人気が​​あったか、何らかの重要な価値のある賞金が支払われた場合を除きます)。少数の高度なスキルを持つ人々が偽造された結果を送信することに成功した場合、それはあなたにとって本当に重要ですか? 考える価値があります。

そのような脅威を許容できると判断した場合、質問で引用されているアプローチにはいくつかの欠陥があります。HTTPS は、秘密鍵がパケット スニファーによって傍受されるのを防ぎますが、電話によって受け入れられる SSL 証明書を提示する透過的なプロキシによって傍受されるのを防ぐことはできません。そのキーチェーン)。

この種の脅威を打ち負かすには、(データ + ランダムなソルト値 + 秘密鍵) の安全なハッシュを計算し、(データ、同じソルト値、そのハッシュ) をサーバーに送信することをお勧めします。サーバーは、既知の秘密鍵からハッシュがどうあるべきかを再計算し、受信したハッシュに対して検証することを確認できます。

于 2012-04-29T13:19:24.163 に答える
0

上記のユーザー @eggyal が最良の回答であると言われています。あなたのプロジェクトで暗号化を使用することをお勧めします。その後、データベース用のサーバーファイルにデータを送信します。サーバー側では、フロントエンドから受信したデータを復号化し、その後データベースと通信します。安全な通信になります。暗号化および復号化メソッドを使用します。

暗号化と復号化のリンクは次のとおりです。

于 2012-04-29T13:18:17.720 に答える