質問

私は尋ねました ここでも同様の質問 しばらく前に、すべての答えはOpenIDを提供していましたが、それは素晴らしいことですが、それを使用しない認証を必要とするサービス(EventBriteなど)では機能しません。

Event Briteのイベントとその分析(Eventbriteに含まれる)をリストするアプリを作成したいとします。誰でも、このサービスにサインアップしてイベントをリストすることができます。しかし、EventBriteには認証が必要なので、ユーザーのログインとパスワードをEventBriteに何らかの形で取得する必要があります。

いくつかの可能な解決策は次のとおりです。

  1. Yamlに資格情報を保存します このような. 。簡単にハッキングできます。
  2. ユーザーに資格情報を自分のサイトのフォームに入力してもらい、資格情報をデータベースに保存し、それらを使用してEventBriteにログインします。簡単にハッキングできます。
  3. ユーザーに資格情報を入力してもらい、保存せずにEventBriteに直接渡すと、応答ヘッダーCookieをデータベースに保存し、期限切れになったら再度ログインします。これは簡単にハッキングできますか?

この仮想サービスは、イベント(Cron経由など)を自動的にチェックすることも望んでいるため、ブラウザを介して私のサイトに行くユーザーに依存しません。したがって、クッキーまたはクレディエンティアルはどこかに保管する必要があります。

事は、 機密性とセキュリティについてこの同様の質問をした後 あなたはすべきだと思う 一度もない 私が説明していることを行うアプリケーションを作成します。このようなものを構築するのは大丈夫です。

そのような方法は何ですか?何が足りないの? #3を使用してCookieを保存しても大丈夫ですか(ただし、EventBriteに送信するフォームでメール/パスワードを送信する必要があります)?問題に対する許容可能な解決策は何ですか?

役に立ちましたか?

解決

これを行うための安全な方法はありません。回避策を採用できますが、それはそれについてです。

  1. YAMLまたはXMLでパスワードをClearTextに保存することは間違いなく出ています
  2. 実際、パスワードを暗号化して保存することさえも間違っています。アプリケーションにはパスワードを復号化する方法が必要になるため、攻撃者はパスワードを復号化することもできます。
  3. パスワードを保存する推奨される方法はSALT + HASHですが、回復不能になるため、あなたの場合は役に立たない。
  4. 2と3のため、ユーザーの資格情報をどこに保存しても、あなたは脆弱です。
  5. パスワードの代わりにCookieを保存する方が良いアイデアです。しかし、これには、ウェブサイトを通過するパスワードが含まれますが、これは良くありません。

あなたの状況を考えると、Cookieを保管する方が良いアプローチです。あなたのウェブサイトでも、全体を通してHTTPSを使用してください。それは理想的ではありませんが、あなたとあなたのユーザーはそれを認識する必要があります。

他のヒント

EventBriteは最近、説明する新しいドキュメントをリリースしました クロスサイトユーザー認証のためにOAUTH2.0を実装する方法。私たちを使うことをお勧めします JavasciptベースのOAUTH2.0ウィジェット, 、ユーザーの認証トークンをブラウザのLocalStorageにデフォルトで保存します。 AUTHトークンはユーザーのブラウザに保存され、他のドメインからアクセスされることができないため、セキュリティリークがある可能性は低いです。

この認証スキームでは、電子メールとパスワードのコンボの必要性は完全に回避されます。

ほとんどのサイトは、元のClearTextパスワードでの直接ログインのみをサポートするため、それを取得、保存し、提供する必要があります。そして、私はそれであなたを信頼することは決してありません。あなたの概念の問題は、サードパーティにパスワードを指定する必要があることです。解決策は、サードパーティを巻き込むことではありません。たとえば、私のブラウザは、パスワードを自動的に保存して埋めるのがかなり優れています(ハードドライブもパスワードで保護されています)。また、他の数十のパスワードウォレットアプリもあります。あなたのサービスを使用して、購読することによって私は何も得られません。

そのようなビジネスに入る前に、あなたが一番のターゲットになると考えてください。 Facebook、Googleはセキュリティについて非常に妄想的であり、ログインを安全に保つために多くの時間、お金、努力を費やしています。同じリソースはありますか?その後、あなたはより良いターゲットです。また、サービスをハッキングすることにより、彼らはすぐに複数のアカウント、ユーザーのパスワードを取得し、誰が常にパスワードを再利用しているかを確認します。

EventBrite APIを使用するには、すべての接続がSSLを超えていること、およびユーザー名とパスワードではなくuser_keyを使用して認証することを確認することをお勧めします。

EventBrite APIの認証の詳細については、こちらをご覧ください。 http://developer.eventbrite.com/doc/auth/

ログインした後、ユーザーはuser_keyをここで見つけることができます: http://www.eventbrite.com/userkeyapi

これにより、ユーザー名とパスワード情報がワイヤー上で傍受されるか、ローカルデータストアから読み取らないようにする必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top