web-dev-qa-db-ja.com

クレジットカード情報をデータベースに保存するためのベストプラクティス

私の国では、オンライン支払いは古いものではありません。Webアプリケーションが支払いを直接現地の銀行口座に送ったのを見たのは昨年でした。

だから、私は初心者のコーディングウェブ決済システムです。

私の質問は、クレジットカード情報をデータベースに保存するためのベストプラクティスは何ですか...

クレジットカードの暗号化、データベースのセキュリティ制限など、多くのアイデアがあります。

あなたは何をした?

45
Garis M Suero

やってはいけない

単にリスクが大きすぎるため、通常は、関連するすべての現地法およびセキュリティ慣行を順守していることを確認するために、外部監査を受ける必要があります。

システムの安全性を確保したり、現地の法律を順守したりするなど、すべてのトラブルをすでに経験している多くのサードパーティ企業があります。私が過去に使用した米国での例は、 authorize.net です。一部の銀行には、クレジットカードデータを保存して支払いを処理するために接続できるシステムもあります。

あなたが住んでいる国は米国ほど厳格な法律を持っていないかもしれないと思いますが、私の意見では、それはあなた自身を転がすための言い訳ではありません。あなたが他の人のお金を扱っているとき、リスクは正当化するには大きすぎます。

85
Dean Harding

このため、包括的な階層化アプローチをお勧めします。

まず、クレジットカード情報を保存するオプションがあります。

次に、強力な形式の暗号化を使用して、データを安全に保存する必要があります。 256ビットのキーサイズのAESをお勧めします。キーを選択するときは、必ずキースペース全体を使用するようにしてください(ランダムに生成された英数字の文字列をキーとして使用するのはルーキーの間違いです)。

第三に、AESキーを適切に保護する必要があります。コード内に値を埋め込まないでください。 Windowsを使用している場合は、DPAPIの使用を検討してください。

第4に、データベースのアクセス許可をセットアップして、アプリケーションとコンピューターが必要に応じてアクセスできるようにします。

5番目に、データベースへの接続文字列を保護します。

第6に、クレジットカードデータにアクセスするアプリケーションが、適切にセキュリティを確保するようにします。

33
Alan

最低限、PA DSS(Payment Appliction Data Security Standard)に従ってください。詳細については、以下を参照してください。

https://www.pcisecuritystandards.org/security_standards/pa_dss.shtml

また、PCI DSSを見るのが賢明でしょう。これは次の場所にあります。

https://www.pcisecuritystandards.org/security_standards/pci_dss.shtml

23

あなたとそうすることの顧客に対するリスクのために、あなたはクレジットカード情報を保存することを避けるべきです。

暗号化暗号化暗号化。絶対に必要ない場合は復号化しないでください-最後の4桁を表示するために復号化しないでください。ユーザーに自分のカードが何であるかを伝えるために解読しないでください。

実際、可能であれば、暗号化されたカード番号を他のユーザー情報と同じ物理サーバーに保存しないでください。

1
dplass

Authorize.net には Customer Information Manager API があり、システムに顧客情報を保存できます。月額20ドルです。アカウントへのアドオンとして。

1
Redtopia