2

質問に適切に対処する方法がわかりませんが、ここで混乱していることはわかっています。コードを書いたり、スクリプトを提供してくれと言っているわけではありません。私が求めているのはガイダンスだけです。

主にiOSとAndroidのアプリのリソースを提供するAPI(PHPで構築されたフレームワーク)をセットアップしました。また、Amazon REST API、Facebook oAuth、Twitter xAuth などの実装も読みました。私の懸念は、アプリの観点からの認証(おそらく暗号化)に関するものです。

したがって、最初に、ユーザーはアプリをダウンロードしてからインストールします。ユーザーがアプリで最初に目にするのは、ログイン ページのユーザー名パスワードです。ユーザーが入力して送信します。それが私の問題です。アプリがユーザー名とパスワードを API に渡す方法が気になります。もちろん、認証情報はサーバー上で解読できるように暗号化する必要がありますが、特定のプロセスについて混乱しています。

私はモバイル開発者ではないので、プロセスについて何も知らないのかもしれません。教えてください。

編集:

ログイン時のユーザー名とパスワードは、API へのアクセスに使用する資格情報ではなく、アカウントの資格情報であるため、API はユーザーが有効なユーザーであるかどうかを認識し、そのプロファイルの詳細を返します。

4

4 に答える 4

1

もちろん、安全性の必要性にもよりますが、送金を処理する銀行は安全性を提供するためにさらに拡張しますが、一般的に、以下は少なくとも何百時間も費やすつもりのない人からAPIの安全性を与える必要がありますそれまたはプロのハッカーです。

まず第一に、https を介して通信できます。これは、ほとんど労力を必要としません。第二に、あなたとあなたのAPIだけが知っているハッシュとソルト(その前後のランダムな文字の束、ハッシュのにソルトを含める)でパスワードをハッシュすることができます。あなたはそれを解読しません - 管理者であっても、誰かのパスワードを知っている理由はありません。MD5 や SHA1 などの標準的なものを使用すると、実際には復号化することさえできません。ハッシュ値とソルト値を比較するだけで、誰かがログインを許可されているかどうかを知ることができます.

ユーザー名でも同じことができると思いますが、必須ではありません。

繰り返しますが、これは完全に証明されたアンチハッカーおよび安全方法ではありませんが、ほとんどの API の安全のニーズに対応します。

于 2013-02-14T08:45:57.743 に答える
1

独自の認証を展開するだけでなく、Facebook や Twitter などの他のログイン プロバイダーを利用することもできます。これには、アプリにリダイレクトするために、これらのプロバイダーでアプリ構成をセットアップする必要があります。https://softwareengineering.stackexchange.com/questions/78587/facebook-and-twitter-authentication-from-mobile-applications

REST での認証に関する基本的なガイドラインに関するこのページも見つけました - http://www.infoq.com/news/2010/01/rest-api-authentication-schemes

于 2013-02-14T09:00:05.080 に答える
0

他の人が言うように、MD5 などのハッシュ アルゴリズムを使用してパスワードをハッシュできます。これは暗号化ではなく、ハッシュであることに注意してください。プレーンテキストのパスワードをサーバーに送信する必要はありません (または保存する必要はありません。ハッシュを保存します)。ユーザーがアカウントを作成する方法と場所については言及していませんが、パスワード ハッシュの作成に使用するアルゴリズムが同じであることを確認する必要があります。

于 2013-02-14T09:09:44.260 に答える
0

多くのアプリケーションは、API の使用に HTTP 認証を使用しています。HTTP 基本はまさにその通りであり、非常に基本的であり、あまり安全ではありません。ユーザー名とパスワードを安全に使用して通信を保護する http-auth を使用することをお勧めします。

基本的には、API 呼び出しに http-auth を使用する必要があるサーバーを構成し、それがアカウントを認識していることを確認するだけです。

iOS 側では、AFNetworking などのライブラリを使用してサーバーとの通信を処理します。呼び出しの認証に使用するユーザー名/パスワードをライブラリに渡すことができます。

また、ユーザーが毎回入力する必要がないように、ユーザー名/パスワードをアプリケーション キーチェーンに保存することをお勧めします。

于 2013-02-14T08:54:34.270 に答える