0

私は通常そうします

$password = "password";
$mysqli = new mysqli("localhost", "root", $password, "database");

スクリプトに保存されているプレーンテキスト形式を保存する代わりに、ハッシュされたパスワードを mysqli に与える方法はありますか? スクリプトにプレーンテキストのパスワードを使用しないようにするための良い方法はありますか? これは安全ですか

100%の証明にはなりませんが、平文を利用できないと少し面倒になりますか?

4

2 に答える 2

4

残念だけど違う。パスワードとして送信されるものはすべてパスワードです。パスワードをハッシュするための小さな関数を作成したとしても、パスワードを平文で保持する必要があります。それでも、そのハッシュ化されたパスワードは (MySQL で設定したように) パスワードになるため、プレーン テキストのままです。

PHP はサーバー側のスクリプトであるため、誰もこのパスワードを見ることができず、クライアントに転送されることもないため、傍受することはできません。推測しにくいパスワードをお勧めし、スクリプトが MySQL インジェクションから保護されていることを確認して、そのルートを介して誰もデータベースにアクセスできないようにします。

于 2013-01-22T14:12:30.263 に答える
4

いいえ; これは、そもそもパスワード ハッシュを使用する意味に反するものです。ハッシュ化されたパスワードでログインできる場合、ハッシュ化されたパスワードは基本的にパスワードになります。

暗号化することはできますが、復号化の鍵もどこかに保存する必要があるため、パスワードを難読化するだけで、保護することはできません。スクリプト ファイルにアクセスできれば、誰でも簡単に見つけることができます。

最終的には、サーバー自身のファイルシステムのセキュリティにある程度の信頼を置く必要があります。あなたの最善の策は、ドキュメントルートの外に保存され、それを読む必要のないサーバー上のユーザー/グループが読めないようにすることです。

于 2013-01-22T14:05:47.430 に答える