0

たとえば、AngularJSを使用してWebアプリを作成していて、クレジットカード番号などのユーザーの機密情報が保存されています。

使用すべきセキュリティプロトコルのいくつかを考えています。私はセキュリティの経験がないので、この種の問題では無力だと感じています。要件のいくつかを整理しました。

  • クライアント側は決して保護されないため、サーバーはユーザーIDに対して独自の検証を行う必要があります。
  • サーバーはパスワードをプレーンテキストとしてデータベースに保存できません。代わりに、不可逆的に変更された文字列を保存します。
  • インターネットを介したパスワードの送信は安全ではないため、サーバーは元のパスワードを要求できません。

要件が矛盾しているように見えるので、これまで私は混乱しています。ユーザーパスワードに対して元に戻せない変換を実行する必要がありますが、サーバーが元のパスワードを要求できません。つまり、変換はクライアント側でのみ実行できます。一方、クライアント側はすべてユーザーに公開されており、ハッキングされやすいため、クライアント側を信頼することはできません。

私が言及した問題に対処する既存のセキュリティプロトコル/フレームワークはありますか?

4

2 に答える 2

1

1)何らかの機密情報を扱う場合は、httpsを使用する必要があります。これにより、パスワードをクライアントからサーバーに送信できるようになります。2)パスワードの作成時にハッシュし、そのハッシュをデータベースに保存します。今後のサインイン時に、提供されたパスワードをハッシュして、ハッシュ値を比較できます。

3)クレジットカード情報を扱っている場合は、他にも考慮しなければならないことがたくさんあります。PCI要件(クレジットカード情報を保存している場合)をざっと確認する必要があります。クレジットカードを処理するだけの場合は、Stripeなどのサードパーティリソースに委任することをお勧めします。彼らはあなたのためにすべてのカードセキュリティの側面を処理します。

于 2013-01-17T18:38:09.590 に答える
1

また、SQLインジェクション、クロスサイトスクリプティングなどを回避するために、ユーザー入力のクリーニングと検証を検討する必要があります。

于 2013-01-18T18:55:07.703 に答える