2

バックストーリー 私は中小規模の会社で働いており、顧客向けの会計ポータルを作り直しています。マネージャーは、エンド ユーザーのコンピューターの Cookie に保存されているクレジット カード情報を使用して、シングル クリックの支払いオプションを作成したいと考えています。私はこの考えが好きではありません....まったく(実際、私はまだ彼の考えを変えようとしています). できる限り安全にしようとしていると言われていますが、リスクを最小限に抑える方法があると思います。

すべての交換にSSLを使用

毎回入力する必要がある確認パスワードとして暗号を使用して、ローカルに保存されている多数の Cookie でデータを暗号化します。暗号を強力にする、たとえば15文字以上の混合文字を強制します。これは、サーバーで暗号のハッシュをチェックすることで確認されます。

主な弱点は、双方向の暗号化で保存される Cookie 情報であることを知っています。これは、情報を保存するための合理的に安全な方法です....

質問 この基本的な方法を使用してどのように改善できますか。

たくさんのことが起こることを知っておいてください答え(私が尋ねていなければ、私はそのうちの1人になります)具体的にお願いします。あなたはこれについて合唱団に説教しているので、否定的に建設的にしてください.

編集- マネージャーとの推論に使用できる特定のポイントがある場合は、共有してください. (私は、CC 情報が Cookie から盗まれた場合、法的責任を負う可能性があることをすでに提起しました。彼は、弁護士にそれを見てもらうと言いました)

ありがとうございました。

4

3 に答える 3

1

Cookie は各リクエストで送信されることに注意してください。それらにクレジットカード情報を保存すると、安全性が低下するだけでなく、現実的な時間的メリットが得られません. 実装が簡単であることを除けば、このようにする理由はありません。あなたはそれを実装しているので、とにかく実装の容易さを気にするべきではありません...

編集:何か問題が発生した場合、彼が解雇されることを指摘することもできます. 彼の仕事を脅かすことは、彼にあなたのやり方でそれを見てもらうための素晴らしい方法です.

于 2012-08-01T14:29:21.327 に答える
1

すべての交換にSSLを使用

クレジットカード/支払い情報が関係している限り、使用するソリューションに関係なく実行する必要があります. あなたがおそらく知っているように。

毎回入力する必要がある確認パスワードとして暗号を使用して、ローカルに保存されている多数の Cookie でデータを暗号化します。暗号を強力にする、たとえば15文字以上の混合文字を強制します。これは、サーバーで暗号のハッシュをチェックすることで確認されます。

私は通常、自分のクレジット カード番号を覚えています。ほとんどの顧客がとにかくどこかに書き留める長くて複雑なキーよりも、むしろそれを入力したいと考えています (私はすでに誰にも開示したくないので)。

「やるな!」とは言えなくても。- あなたの上司がこの決定を下すのを思いとどまらせる良い方法を私たちに尋ねてみませんか? ;-)

これをサーバー側に保存したくない理由は何ですか? Amazon が私のクレジット カード情報を Cookie に保存するわけではありません。基本的な考え方は、すべてのユーザー情報をサーバーに保存し、ユーザーが正常に認証された (つまり、ログインした) ときにアクセスすることです。

この場合、ブラウザ セッション間でログイン状態を保持するために Cookie が使用されます。このログインセッションがアクセスできる情報は、サーバーに保存されます。クレジット カード情報を使用すると、通常、他の機密情報よりも多くのセキュリティが必要になりますが、基本的な考え方は同じです。

実際のクレジット カード番号を Cookie (暗号化されているかどうかにかかわらず) に保存することは、テクノロジーに精通した一部の顧客があなたがしていることに気付いた場合に、潜在的な PR の悪夢になる可能性があります。

詳しく読むためのスレッド: Cookie に保存してもよい情報は何ですか?

編集:この質問を読めば読むほど、私は唖然とします。あなたのマネージャーはクッキーが何であるかさえ知っていますか? 使い方?それのポイントは何ですか?クレジット カード情報を Cookie に保存したいと言うのは、靴ひもを運ぶ手段として靴を使いたいと言うようなものです。彼は、何の理由もなく積極的かつ意図的に自分の足を撃っています。彼が達成したいことは、機能をまったく失うことなく、他のより安全な手法を使用してはるかに簡単に達成できることです。

Scott Hanselman によってリンクされた記事から:

クレジットカードの保管

どうしてもクレジット カード データを保存する必要がある場合は、暗号化して保存する必要があります。

ベンダーが従うことになっているさまざまなコンプライアンス標準(具体的には CSIP および PCI) があり、ネットワークを保護し、データを保存する方法に関する特定の規則が記述されています。これらのルールはかなり複雑で、非常に高価な認証が必要です。ただし、これらの基準は非常に厳格で、認証を受けるには費用がかかるため、小規模な企業が準拠することはほぼ不可能です。小規模なベンダーが遵守を迫られる可能性は低いですが、遵守しない場合、詐欺やセキュリティ違反が発生した場合にクレジットカード会社は基本的に責任を免除されます。言い換えれば、損害の全範囲に対して完全に責任を負うのはあなたです (現実的には、とにかくあなたです。私はこれらの認定の大まかな概念を繰り返しているだけです)。

(私の強調)

于 2012-08-01T13:48:19.713 に答える
0

ユーザーのパスワードをキーとして使用しないでください。少なくとも、キーを構成する唯一のものであってはなりません。サーバーに保存されている (ユーザーには知られていない) 秘密鍵を使用して、クレジット カードのアカウント情報を暗号化する必要があります。

クレジット カード情報は、クライアントに保存されていても、サーバー上で復号化できます。このように、暗号化されたクレジット カード情報がクライアント上で逆にされることはありません (秘密鍵を知らずに)。

秘密鍵とユーザーが入力したパスワードの両方を使用してクレジット カードのアカウント情報を暗号化すると、適切なパスワードがないと解読するためにサーバーに送信できなくなります。

于 2012-08-01T19:12:47.163 に答える