2017-05-20 12 views
1

ユーザーがオンラインで登録する必要があるアンドロイドアプリを作成しました。私のアプリからのJSON登録データの受信を確実にする方法はありますか?ありがとう。着信登録データを確認する

答えて

0

あなたは(例えば、公開鍵など)のランダムハッシュおよび/またはバリデータ/検証ハッシュを生成することができます

最も簡単な形式: あなたのアプリケーションストア有効期限などのハッシュ、例えば数分。 登録に追加するユーザーに検証ハッシュを送信します。 あなたのアプリだけがトークンを生成できます。 例えば:

$token = bin2hex(openssl_random_pseudo_bytes(16)); 
    // or 
    $token = bin2hex(random_bytes(16)); 

あなたは別のものが登録してtrys incommingハッシュがわからない場合。

+0

ご意見ありがとうございます、より詳しく教えていただけますか? – nerotech

+0

ありがとう、これは現在私がやっていることですが、誰かがapkを逆コンパイルすると、簡単に外部アプリ経由でトークンを取得できます。より安全な方法を探しています。 – nerotech

-1

あなたのAPIコントローラにこのAuth関数を書き込みます。

protected function Auth($id,$token){ 
if(!empty($id) and !empty($token)){ 
    $user = DB::table('users')->where('id',$id) 
      ->where('token',$token)->count(); 
    if($user == 1){ 
     return true; 
    }else{ 
     return false; 
    } 
}else{ 
    return false; 
}} 

初めてのログインは、ランダムハッシュを保存するために、このメソッドを使用していますが、ユーザーのトークン。撮影中

$randomString = $this->random_hash(); 

とを(キー=>トークンとしてユーザーテーブルにこのトークンを保管してください)そのユーザーの任意のapiリクエストIDとaccess_tokenからの入力。

$auth = $this->Auth($id,$access_token); 

if($auth == 1)あなたの機能を続行することができます。

+1

あなたはその質問をお読みになりましたか? –

+0

はい、私はAPIレベルabuteを話しています – Sachin

2

私のアプリからのJSON登録データの送信を確実にする方法はありますか?

まあ、YesNo :)

Yes

あなたがインターネットにAPIを公開すると、あなたは通常、誰もがそれに話をしたくありません。したがって、ほとんどのAPIが使用する最初の壁は、APIトークンを使用している間保持することができるクライアントトークンです。 APIによっては、各リクエスト(ヘッダー付き)とともに送信されるAPIもあれば、oauthベースのAPIのようにユーザーを認証している間に表示することが必要なAPIもあります。さらにsecret文字列を入力して、secretのリクエストペイロード(JSON)をまとめてリクエストして結果のチェックサムを含めるように依頼することもできます。その場合、リクエストがバックエンドに到着したときにAPIが同じことを行い、secret文字列を知っているので、一致したチェックサムを確実に送信するために同じハッシングを行うことができます。そういう仕組みがあれば、どのクライアント(ソフトウェア)があなたと話しているのか、それが許可されているかどうかを知ることができます。あなたがそれを実装していないならば、私は単にそれを追加するだけです(これは、あなたのアプリケーションの古い古いバージョン)を単純にブラックリストに載せることで特定のクライアントを禁止することになります。

No

残念なことに、私が言及したこれらの鍵や秘密などは、通常、アプリの場合はアプリのバイナリに含まれ、バイナリは一般に公開されなければならないため、コンテンツは完全に秘密とはみなされませんいくつかの作品は、それを抽出することができますし、そのアプリケーションに代わって要求を偽装するために使用されます。そして、呼び出しが元のコードから来たのか、または詐称者によって送られたかどうかを伝えることは残念ながら不可能です。

+0

ありがとうMarcin、アプリ内のトークンを隠すための最良の方法は何でしょうか?この時点で私はproguardを使用していますが、apkが逆コンパイルされているときにトークンが簡単に取得されます。 – nerotech

関連する問題