0

Androidアプリから情報を受信して​​処理するphpスクリプトにデータを送信していますが、セキュリティの問題が見つかりました。誰かがURL(mydomain.com/recievedata.phpなど)を発見した場合、誰もが私のシステムにデータを送信することができます。

データを送信するクライアントがアプリであることを確認するための理想的な方法は何ですか?

ありがとう!

4

3 に答える 3

6

一部の企業が行っている簡単な方法の 1 つは、秘密鍵を含めることです。たとえば、secret=3CH6knCsYmvA2va8GrHk4mf3JqmUctCMPOST データへのパラメーターがあるとします。次に、一番上に必要なのreceivedata.php

if($_POST['secret'] != '3CH6knCsYmvA2va8GrHk4mf3JqmUctCM') {
    header('HTTP/1.1 403 Forbidden');
    error_log("ERROR: wrong secret: " . $_POST['secret']);
    exit("Access denied");
}

random.orgからランダム文字列を簡単に生成できます。

もちろん、これは最も安全な方法ではなく、その文字列は APK に平文で保存される可能性があります (これを起動コードの送信に使用しないでください!)。これは、たとえば、ゲームのプレイヤー スコアを送信するのに十分な場合があります。

于 2012-05-31T21:44:35.873 に答える
3

それはPHPの質問に似ています。セキュリティのために行うべきことは次のとおりです。

  • アプリと PHP の間にハッシュを追加して同期します (AKA 秘密鍵)
  • スクリプトがすべての入力データを制御していることを確認してください
  • データをエスケープせずにクエリに送信しないでください (SQL Inject)
  • GET または REQUEST の代わりに POST を使用してみてください
  • 関数をできるだけ非公開にする
  • 受け取ったデータを常に解析します(数値、文字列、配列などを確認してください)

これらを使用すると、アプリケーションなしでは誰も PHP ファイルを使用できなくなります。また、あなたの許可なしにデータを受信することはできません

于 2012-05-31T21:48:12.020 に答える
1

唯一の適切な方法は、受け取ったデータを信用しないことです。常に、悪者からの細工されたデータに適した方法で処理してください。

于 2012-05-31T21:36:18.640 に答える