0

私はPHPとSQLの初心者です。ばかげた質問かもしれませんが、私もWeb業界への参入を考えているので、プロの方に聞いてみたいです。

Web サイトで SQL クエリを実行しようとする場合、たとえば PHP を使用して、実行する前にデータベースとの接続を確立する必要があります。

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

しかし、私には安全に見えないので、この種のことをするのは私を悩ませました。Web ユーザーに公開される可能性があるスクリプトを介してパスワードを渡す必要があります。

パスワードを SQL コマンドに渡すより安全な方法はありますか? プロの業界の人々は、この問題にどのように対処しますか?

4

4 に答える 4

2

これが正しい方法です。

通常、パスワードは変数/定数にあり、その変数がこのコマンドに渡されます。

このファイルを PHP サーバーから提供する場合、Web 上のユーザーはこのファイルのソースを見ることができません。したがって、パスワードが表示されることはありません。

于 2012-06-26T20:18:31.970 に答える
0

これは、通常の状況では正しく安全です。PHP はサーバー側言語であるため、すべてのコードはサーバー上で評価され、出力のみがクライアントに送信されます。したがって、DB 資格情報がユーザーに送信されることはありません。

もちろん、サーバーが正しく構成されておらず、PHP ファイルを実行する代わりにプレーンテキストとして提供している場合は、問題が発生します。

于 2012-06-26T20:21:52.820 に答える
0

PHP ファイルで使用されるパスワードは、多くの場合、localhost からのデータベースへのアクセスのみを許可されたアカウントに対するものです。そのため、パスワードを知っていても、インターネット経由でデータベースにアクセスできません。接続は同じコンピューターから行う必要があるため、サーバーの他のサービスへのアクセスを保護している限り、問題はありません。また、MySQL のデフォルト設定では、localhost からの接続のみをリッスンします。

于 2012-06-26T20:28:38.530 に答える
-2

一方向の暗号化アルゴリズムを使用し、暗号化を渡してデータベースに保存する必要があります。誰かがそれを手に入れても何もできないように、一方向暗号化を強化したいと思います。次に、パスワードが一致するかどうかを確認するときに、入力したパスワードを取得し、それを暗号化してから、暗号化を一致させます。パスワードを解読することはなく、パスワードを解読することもできません。基本的に、パスワードが暗号化された後は、破棄して二度と使用しないでください。

于 2012-06-26T20:22:39.557 に答える