カードの詳細を任意の永続メディア(データベースなど)に保存しますが、カード番号は一意のランダムで暗号化します。 セッションに保存するキー。そうすれば、セッションが失われた場合でも、キーも重要になります。これにより、期限切れ/放棄されたデータをクリーンアップするのに十分な時間が与えられます。
また、セッションがハイジャックから保護されていることを確認してください。これにはハードウェアソリューションがありますが、コード内の簡単な方法は、セッションIDをIPの最初のオクテットとユーザーエージェントのハッシュに関連付けることです。絶対確実ではありませんが、役に立ちます。
編集 :リスクを最小限に抑えるための重要な要素は、その情報をできるだけ早く取り除くことです。トランザクションが完了した直後に、データベースからレコードを削除します。また、セッションタイムアウト(通常は20分)より古いレコードを削除するローリングジョブ(たとえば5分ごと)も必要です。また、この非常ににデータベースを使用している場合 一時データ。自動バックアップシステム上にないことを確認してください。
繰り返しになりますが、このソリューションは絶対確実ではなく、CCセキュリティ要件に準拠しているとは100%確信していません。ただし、攻撃者が顧客のCC情報をアクティブに復号化するには、環境を完全に実行時に制御する必要があります。データベースのスナップショットが危険にさらされた場合(はるかに可能性が高い/一般的)、一度に1つのCCのみをブルートフォースできます。これはあなたが望むことができる最高のものです。