2012-04-23 5 views
0

私はPHPスクリプトに価値を送るappを作っています。その後、phpスクリプトはMySQLデータベースにconncectし、JSON配列を返します。そして、アプリケーションはそれを読むだろう。安全をどう確保するか?今のところ私は安全対策を使用していません。アンドロイド安全確保

+1

何から安全? –

+0

安全性は、電話が壊れていないときと同じですか? –

+0

彼は彼がどのように接続を確保できるかを尋ねていると思います。 –

答えて

1

これは、本物の答えが本の価値のある資料を取るほどの巨大なトピックです。

どのような安全対策が求められていますか?

Webサーバーを使用する場合、まずWebサーバーを保護し、一般的な攻撃方法から保護するために十分なスマートなAPIを構築する必要があります。 URLに何かを入力するだけで、他の人があなたの意図するユーザーと同じことをすることができないようにする必要があります。つまり、APIにアクセスする前にユーザーを検証する必要があります。

これを行う最も一般的な方法は、サーバーとクライアントだけが知っている「秘密鍵」を共有することです。だからあなたのユーザーは、電話で、特定のキーを持っており、サーバーにはキーがあります。ユーザーはサーバーにデータを送信し、検証ハッシュ(sha1(KEY + DATA)など)も送信します。サーバーはデータを受け取り、ハッシュ値が同じであることを確認します。要求と一緒にキー自体を送信しないでください。

テストする必要があるもう一つのことは、リプレイ攻撃です。誰かがコミュニケーションに耳を傾けると、そのダメージを制限する必要があります。これは、通常、リクエストでタイムスタンプを送信し、タイムスタンプが受け入れられた範囲内にあるかどうかをサーバがチェックするので、誰かが同じリクエストを後で再送信すると、タイムスタンプが異なるために失敗します。サーバーは、タイムスタンプが入力データ検証のために考慮されるので、これをチェックします。

次に、サーバーから返されたデータが正しいことを確認する必要があります。したがって、サーバは、あなたの電話機が確認する検証ハッシュを作成し、誰かがあなたの電話機に送り返されている間にデータを変更していないことを確認します。

追加レイヤーとして、AES/Rijndael 256bit暗号化などの強力な暗号アルゴリズムを使用して送信(およびAPIから受信)されたデータを暗号化することもできます。これにより、データを開くために必要なキーでデータが暗号化されます。電話機とサーバがキーを認識し、誰もそれを知らない場合、データを安全に送信できます。

接続はHTTPS/SSLである必要があります。これにより、通信が傍受されるのを防ぐことができます。しかし、誰かが既に電話にアクセスしている場合は役に立ちません。

携帯端末では、セキュリティを侵害する可能性のあるアプリがインストールされていない限り、携帯電話自体はかなり安全です。また、電話機だけが安全であることから、ハッカーは自分の電話で簡単にコミュニケーションを聞くことができ、WebサービスAPIの基礎を理解することができます。すべてのドアを開ける。したがって、セキュリティレイヤーが最大から最小になるようにしてください。Webサーバーは、システム内で最大のエンティティです。

ご覧のとおり、これは学習に長い時間がかかる大量のトピックです。しかし、あなたが尋ねてきたものが何であるか分からずに、私は本当にあなたをさらに助けることができません。

関連する問題