2012-01-09 9 views
0

ウェブ開発の経験がほとんどないため、私の知らせを赦してください。ユーザーとリクエストの認証を実装する

私はユーザーパスワードをポスト/取得パラメータとしてハッシュし、それをデータベースに格納するという単純なメカニズムを実装しました。ユーザーが正常にログインすると、ユーザーID(データベースのPK)がクライアントに返されます。後続の要求には、要求を検証するための基本的なメカニズムとして使用されるユーザーIDが必要です。

シンプルなhttp認証から始めて、塩漬けのハッシュ(私が使用している)を使って、一見複雑なOAuth認証にアクセストークンを実装して、いくつかのメカニズムについて読んだことがあります。ああ!おそらく約httpsのようになります。

まだ理解している最後の2つを除いて、私は答えを見つけることができなかった非常に基本的な質問をしているようです。

これはプログラミングに関する直接の質問ではありませんが、私が尋ねる理由は、Googleで答えを見つけることができないか、正しい検索キーワードを使用していないことです。

私はこのメカニズムを実装していてもhttpsを使用していなくても、アクセストークンとAPIキーなどのすべてのメカニズムを考慮して、質問を実装するのに何か問題はありますか?誰もがクリアテキストのパスワードやユーザIDを盗聴できるように、トークン/キーを詮索し、それを悪意のある意図で使用して、そのメカニズム全体を役に立たなくすることができます。それはhttpsが本当に安全な唯一のオプションだということですか?

私はここに何かを紛失しているはずですが、ポインタは本当に感謝しています。

答えて

1

は平均httpsのが唯一の真の安全なオプション

であるといない、オプション、あなたのアプリケーションのさまざまなポイントでリスクを軽減するために実装する緩和策のではなく、一連の「安全な」単一はありません。 HTTPSは3つの異なることを行います:

  1. これは、ウェブサイトのアイデンティティ(サイト検証)を保証します。
  2. コンテンツは、 中継(データの完全性)で操作されていないことを保証します。
  3. (データの機密性)で盗聴が発生していないことを保証します。

攻撃者がプレーンテキストパケットを監視または操作している場合、HTTPSを使用しないと、他のすべてのセキュリティプラクティスを簡単に無意味にすることができます。 Insufficient Transport Layer Protectionの私の記事を見て、これが実際に何を意味するのかを見てください。

+0

その投稿はすごく読み物です。私はセキュリティの分野では初心者ですから、後の部分が一番上になりました。基本的なものすべてを最初に得るために推薦するソースはありますか?私は、対象を扱うサイトにはトンがあるが、どこから始めるべきか分からないということを意味する。 –

+0

ありがとう:)あなたがセキュリティに興味があるなら、私のシリーズでパート1を読んでそこから始めてください。一般的な技術であれば、ここで多くの質問をしたり、書籍をたくさん読んでください。 –

0

HTTPSを使用しない場合、一部のランダムなハッカーが、システムからのパケットの到着を盗聴し、ログインに関する情報を盗む可能性があります。

関連する問題