9

現在、クレジットカード情報を取得するための設定を作成しています。次の構造が使用されました。

サーバー1:

  • MySQLユーザーが読み取り専用に設定
  • ログインクレデンシャルを保持します。

このコードに基づいて構築したクラスで行われるPBKDF2ハッシュを使用します。

サーバー2:

  • MySQLユーザーが読み取りと書き込みを設定
  • すべての顧客のクレジットカード情報を保持します

私の質問:

サーバー1がパスワードを次の形式で保存する場合:algorithm:iterations:salt:hash

例えば:sha256:1000:Pe27BkIKkBHklogp9Io80iRKtF+6koly:nrYUwOlixwJECRcjBRKwQ+MVNMTbnYnm

サーバー1が侵害された場合、この形式のパスワードを使用すると、サイトのパスワードを解読してユーザーのクレジットカード情報にアクセスしやすくなるように思われます。

これは、 Mysql(AES_ENCRYPT()およびAES_DECRYPT())を使用する必要がある場合ですか?

私はこれを考えすぎていますか?

サーバー1の情報を保護するためのより良い方法はありますか?

コメントに基づく更新

私は暖房と空気の会社のシステムを構築しました。オンラインで支払う人は誰でも、必要に応じてクイックブックにcc情報を保存できます。私はオフィスで毎月請求し、デスクトップ端末を介してccを処理するいくつかのより大きなクライアントを持っています。これらのクライアントは、サーバー上に顧客プロファイルを持っており、それらにアクセスできます。これらは、cc情報をそこに保存することを許可したいクライアントです。このようにして、誰もが見つけられるように、私たちのオフィスの紙にcc情報を保存する必要はありません。

4

1 に答える 1

2

正直なところ、サーバー1を危険にさらすことができたとしても、それらのパスワードを解読しようとはしません。それらは安全でなければなりません。私が行う可能性が高いのは、サーバーに自分のコードをインストールして、ユーザーがログインしたときにパスワードやクレジットカード情報を送信することです。たとえば、login.phpという名前のファイルで認証を処理するとします。 。login.phpを危険にさらすことができれば、ログインを検証しているときに、curlコマンドなどを実行して、ログイン情報を自分のサーバーに送信し、そこで収集することができます。

しかし、私は逸脱します...答えは、ユーザーのログイン詳細のハッシュは、あなたが説明したように安全でなければならないということです。サーバー1のデータベースが危険にさらされた場合、可能な限り安全である必要があります。PHPコード内に難読化のレイヤーを追加して、ソルトのハッシュでマンジするようなことを行うことができます。これにより、データベースにアクセスできるがコードにはアクセスできない人が、ハッシュに使用したプロセスを知るのがはるかに困難になります。パスワード。ハッカーがパスワードやiloveuなどのパスワードをブルートフォースしようとするのを防ぎます。また、サーバー2のクレジットカード情報は、またはPHPの機能を使用して暗号化された形式で保存することを強くお勧めします。AES_ENCRYPT()mcrypt_encrypt()

POSTフォームを介してすべての入力をサニタイズするようにしてください。そうすれば、準備が整います。

于 2012-12-29T01:11:50.597 に答える