0

私は誰かが私が何かを整理するのを手伝ってくれることを望んでいました。私はWordPress用のショッピングカートプラグインにかなり長い間取り組んできました。私は2008年の終わりにそれをコーディングし始めました(そしてそれは「時間があるときにそれに取り組む」プロジェクトの1つだったので、明らかに進行は非常に遅いです!)そしてそれでかなりうまくいきました。数人のテスターでさえ私を取り上げてフィードバックをくれました。(このプラグインは有料ダウンロードでもあることに注意してください。プレミアムプラグインにするつもりはありません。)

とにかく、2010年にすべてのPCI / DSSが標準になったとき、プラグインはデータベースに特定の情報を保持することを目的としていたため、私はそれを棚上げしました。誰かを危険にさらす可能性があり、おそらく私に戻ってくる可能性のあるものをそこに出したくありません。

過去数週間にわたって、何人かの同僚と私はPCI / DSSコンプライアンスについて話し合っていました、そしてそれはこのプラグインを最終的に完成させることに再び興味を起こさせました。クレジットカード番号とその性質のデータのストレージを削除しますが、このプラグインを使用する可能性のあるサイトでアカウントを自発的に作成したい人の名前と配送先住所を保存するというアイデアは好きです。そのため、再度買い物をしても、そのような情報は保持されます。保存されるデータは公開情報であることに注意してください-電話帳や、郡庁舎の記録室を覗くようなもの。つまり、SS#、病歴、またはクレジットカード番号を保存するようなものはありません。誰かが過去の購入を見ることができ、将来のチェックアウトプロセスを少し簡単にするためにいくつかの情報を保持できるようなものだけです。

同僚の1人は、サイト所有者が使用することを選択した支払いゲートウェイに名前と配送先住所が渡される可能性があるため、セキュリティを少し強化するためにまだ何かをすることを提案しました。彼らは私が「一方向暗号化」を使用することを提案しました。今、私は巨大なセキュリティフリークではありませんが、これには(とにかく1つの側面で)塩を使ったMD5ハッシュなどが含まれると確信しています。だから、これは私を混乱させます。なぜなら、私のコードでそのようなものを使用する方法をどこで見るべきか、そして/またはそのようなデータをPayPalまたはGoogleCheckoutに渡すときにそれが機能するかどうかについて少しもわからないからです。またはマルの、またはあなたは何を持っていますか。

ですから、これは「コード例が必要」という種類の質問ではなく、「私は一種の劣等生なので、教えてください」という種類の質問だと思います。(これは、私がショッピングカートプラグインLOLを書いているという事実について人々がはるかに気分が良くなると確信しています)

4

1 に答える 1

0

一方向暗号化は、暗号化されていない段階でデータベースから再度戻す必要のない情報をデータベースに格納するために使用されます(したがって、一方向モニカ)。より一般的な意味では、2人の異なる人(またはシステム)が同じデータを所有していることを示すために使用できます。たとえば、Gitはハッシュを使用して、ファイル(および実際にはディレクトリ構造全体)が同一であるかどうかを確認します。

通常、ecomm contectでは、パスワード(場合によってはクレジットカード)にハッシュが使用されます。これは、サイト所有者として実際のパスワードを保持する必要がなく、パスワードが現在送信されているかどうかを判断できる関数が必要なためです。ユーザーは以前に提供されたものと同じです。したがって、ユーザーを認証するには、暗号化アルゴリズム(MD5、SHAなど)を介して提供されたパスワードを渡して、「ハッシュ」を取得します。ハッシュが以前に生成されてデータベースに保存されたハッシュと一致する場合、パスワードは同じであることがわかります。

WordPressは、ソルトハッシュを使用してパスワードを保存します。データベースでwp_usersテーブルを開くと、ハッシュが表示されます。

このシステムの利点は、誰かがデータベースを盗んだ場合、元のパスワードを取得せず、泥棒がユーザーのFacebook、銀行などのサイト(ユーザーの場合)にログインするために使用できないハッシュ値のみを取得することです。同じパスワードを使用しています)。実際、ハッシュをハッシュすると別のハッシュが生成されるため、ハッシュを使用して盗まれたサイトにログインすることさえできません。

ソルトは、ハッシュに対する辞書攻撃に対する保護手段を提供します。一般的なパスワードとハッシュ値の間のマッピングに利用できるデータベースがあり、ハッシュ値は定期的に使用される一方向ハッシュ関数によって生成されています。ハッシュを生成するときに、パスワード文字列の最後にソルト値を追加した場合(たとえば、私のパスワードがabc123saltになる場合)、同じものを使用すると、以前に生成して保存したハッシュ値との比較を行うことができます。毎回ソルト値。

将来、生の形式で再び使用する必要がある場合、たとえばログイン済みのチェックアウトフィールドに事前入力する必要がある場合は、住所や電話番号(またはそれらの線に沿ったもの)のようなものをハッシュする方法はありません。ユーザー。

ベストプラクティスには、将来必要のないデータを保存しないことも含まれます。将来電話番号が必要ない場合は、保存しないでください。支払いゲートウェイからの応答トランザクション番号を保存する場合、これを不正調査に使用し、他のすべてのデータの保存をゲートウェイに任せることができます。

MD5とSHAの相対的なメリットについては、他の人に任せます。ハッシュシステム。ハッシュを行うためにPHPに組み込まれている関数があることに注意してください。

于 2012-05-02T19:16:20.373 に答える