毎月請求できるように、顧客ユーザーがクレジット カード情報を入力できるようにしたいと考えています。
この情報をどのように保存すればよいのでしょうか。
MySQL データベース (「ユーザー」テーブル) に保存する必要がありますか、それともこの種の情報は機密性が高く、別の場所に保存する必要がありますか?
私はこれを経験したことがないので、誰かがこれを達成する方法を教えてくれたらうれしいです.
ありがとう。
毎月請求できるように、顧客ユーザーがクレジット カード情報を入力できるようにしたいと考えています。
この情報をどのように保存すればよいのでしょうか。
MySQL データベース (「ユーザー」テーブル) に保存する必要がありますか、それともこの種の情報は機密性が高く、別の場所に保存する必要がありますか?
私はこれを経験したことがないので、誰かがこれを達成する方法を教えてくれたらうれしいです.
ありがとう。
前述のように、クレジット カード情報をデータベースに保存しないでください。トラブルのレシピです。そうすることで、ハッカーにとって非常に魅力的なターゲットになり、それらの取得に成功した場合、ビジネスが終了し、あなたの人生だけでなく、クレジット カード番号が盗まれた人の人生も台無しになる可能性があります。
そうは言っても、考慮すべき3つのことは次のとおりです。
1) あなたの最善の策は、定期的な請求を提供する支払い処理業者/支払いゲートウェイを使用することです. この例は、Authorize.Net の Automated Recurring Billingサービスです。サブスクリプションを設定すると、毎月自動的にユーザーに請求され、トランザクションの結果が通知されます。大量の作業を節約し、クレジット カード情報を保存する責任から解放されます。
2) クレジット カード番号を保存する場合は、PCI ガイドラインに従う必要があります。. これらのガイドラインは、クレジットカード業界によって設定され、できることとできないことを定義しています。また、クレジット カード情報を保存する方法も定義します。クレジット カード番号を暗号化する必要があり、関連情報 (有効期限など) を暗号化する必要がありますが、暗号化する必要はありません。また、Web サーバーとネットワークが安全であることを確認する必要があります。PCIコンプライアンスを満たさないと、マーチャントアカウントが失われ、真のマーチャントアカウントを持つことが永久に禁止されます. これにより、柔軟性の低いサードパーティのプロセッサの使用が制限されます。PCI ガイドラインは良い出発点ですが、オンライン セキュリティに関しては「ハウツー」ではないことに注意してください。あなたの目標は、推奨値を (大幅に) 超えることです。
3) 州および国固有の法律は、PCI コンプライアンスに優先します。侵害を受けてクレジット カード番号が盗まれた場合、刑事訴追のリスクがあります。法律は州ごとに異なり、議員はこれがどれほど深刻な問題であるかを認識し始めたばかりであるため、常に流動的です。
暗号化に関する限り、どの暗号化アルゴリズムが安全で、まだ破られていないかを確認してください。Blowfishは良い出発点であり、PHP を使用する場合はmcrypt ライブラリをお勧めします (例)。
最も安全な方法は、クレジットカード情報をシステムに保存せず、サードパーティの支払いプロバイダーに任せることです。
PayPal などのサード パーティの支払いプロバイダーを使用する必要はありませんが、支払いカード情報を保存する場合は、PCI に準拠する必要があります。BC Ferriesに関するこの記事を読んでください。BC Ferries は、PCI コンプライアンスの最新情報を把握していないために多額の罰金を科されており、PCI コンプライアンスがどれほど深刻であるかを理解することができます。
私の現在の雇用主は PCI コンプライアンスに取り組んでいます。これは簡単なプロセスではなく、監査のためのスタッフが必要です。施行は、国および州/州の法律によって異なります。カナダの IIRC では、PCI 採用委員会による PCI 認定を受ける必要がありますが、米国の一部の州では、PCI コンプライアンス監査会社が PCI 委員会の代わりを務めることを許可しています。