10

PHP/mySQLクレジットカード情報を保存するためのセットアップを実装します。

進むべき道のようAES_ENCRYPT/AES_DECRYPTですが、

しかし、私はまだ1つの点で混乱しています:

暗号化キーを安全に保つにはどうすればよいですか?

私のPHPスクリプト(データベースと同じサーバー上にある)にそれを配線することは、主要なセキュリティホールのようです。

ここでの「ベストプラクティス」ソリューションは何ですか?

4

5 に答える 5

16

本当に CC# を保持する必要があるかどうかについて、じっくりと考える必要があります。特別な理由がない場合は、やめてください。隔週で、どこかの企業が侵害され、CC# が盗まれたという話を耳にします。これらの企業はすべて致命的な欠陥を犯していました - 彼らはあまりにも多くの情報を保持していました. トランザクションがクリアされるまで CC# を保持します。その後、削除してください。

サーバーを保護するための最善の方法は、ハードウェアを保護し、MySQL への内部システム ソケットを使用して、MySQL サーバーへのネットワーク アクセスをブロックすることです。システム権限と MySQL 権限の両方を使用して、必要最小限のアクセスを許可していることを確認してください。一部のスクリプトでは、書き込み専用認証を検討する場合があります。誰にでもできる暗号化方法は実際にはありません (常に復号化する必要があり、したがってキーを保存する必要があるため)。これは、そうすべきではないと言っているわけではありません。キーを 1 つの場所に保存することができ、システムの侵害を検出した場合、ファイルを破棄してデータを役に立たなくすることができます。

于 2008-09-11T01:35:45.560 に答える
3

MySQL では、機密データを保護するために実行できる 6 つの簡単な手順があります。

ステップ 1: 付与テーブルのワイルドカードを削除する

ステップ 2: 安全なパスワードの使用を要求する

注: MySQL の「--secure-auth」オプションを使用して、古い安全性の低い MySQL パスワード形式の使用を防止します。

手順 3: 構成ファイルのアクセス許可を確認する

ステップ 4: クライアントとサーバー間の通信を暗号化する

ステップ 5: リモート アクセスを無効にする

ステップ 6: MySQL アクセス ログを積極的に監視する

セキュリティ ツール

于 2011-09-24T08:00:04.113 に答える
0

同意しますが、必要がなければ cc しないでください。ただし、本当に持っている場合は、それを含むファイルが Web 上でアクセスできないことを確認してください。キーを返すバイナリを作成できます。このようにして、クリアテキストで保存されません。ただし、サーバーが侵害されている場合でも、簡単に入手できます。

于 2008-09-11T02:25:21.260 に答える
0

必要なセキュリティはアプリケーションによって異なります。たとえば、cc# が使用されるのがユーザーのログイン時のみである場合 (シン オンライン ストア タイプのシナリオ)、cc# をユーザーのプレーンテキスト パスワードのハッシュで暗号化できます。ユーザーソルト、および専用の cc# ソルト。この値を永続的に保存しないでください。

この値を保存していないため、この値を取得できるのは、ユーザーがパスワードを入力してログインするときだけです。セッションの有効期限とガベージ コレクションのポリシーが適切であることを確認してください。

この状況に当てはまらない場合は、より適切な回答を提供できるよう、状況を詳しく説明してください。

于 2008-09-15T15:48:37.800 に答える