1

私は非常に少数の人々 (50 ~ 60 人) の Web サイトを管理しています。ウェブサイトには簡単なログインがあり、すべてのユーザー データは MySQL データベースに保存され、サイトは有名なウェブホテルによってホストされています。

私が現在データベースに接続する方法は、各ユーザーが自分のパスワードを変更できることを確認するために、読み取りと変更の権限を持つデータベースで指定された単一のユーザー アカウントを使用することです。スクリプト (mysql_conn.php) は必要なページに含まれており、次のようになります。

$server = "server_name";
$username_sql = "user@servername"; // This format is specific for that webhotel
$password_sql = "A_strong_password";    // Hard coded in the file

$conn = mysql_connect($server, $username_sql, $password_sql);
$db = mysql_select_db("user_list", $conn);
mysql_query("SET NAMES Utf8");
if(!$db) {
    echo "Error message";
exit();
}

技術的には魔法のように機能しますが、特にパスワードに関しては、これが最善の方法であるかどうかはわかりません。また、各ページの最後にある種のデータベース切断を含める必要がありますか?

4

2 に答える 2

3

まず第一に、新しいコードでは mysql_* を使用することはお勧めしません。PHP の紹介またはMySQLを参照してください 。可能であれば、代わりに PDO への切り替えを検討してください。

第二に、パスワードを PHP に保存することは非常に安全であり、xml や ini などのプレーン テキストで保存するよりもさらに安全です。Web サーバーが故障して PHP ページを提供できない場合を除き、PHP スクリプトを直接実行する (または Web 経由でアクセスする)ブラウザー) はパスワードを公開することはありません (xml/ini ファイルとは対照的に)。

Web ブラウザからアクセスできない config.php にパスワードを保存することを検討してください (つまり、パブリック ルートの上のどこかに)。

パスワードをハイジャックできる唯一のシナリオは、Web サーバーがハッキングされた場合ですが、その場合、パスワードをどのように保存しても (暗号化されていない限り)、ハイジャックされます。

PDO に切り替えることにした場合は注意してください。接続に失敗した場合、PDO はPDOExceptionをスローします。php がエラーを表示するように構成されている場合、パスワードが開示されます。関連するバグを参照してください。したがって、注意して使用してください!

幸運を :)

于 2012-06-07T09:44:16.550 に答える
1

ログインデータを「dbConnection.inc.php」のようなファイルに外部委託し、外部からアクセスできないディレクトリに保存します。

極端な場合、プロバイダが .php ページをプレーン テキストとして提供することがあります。その場合、訪問者はあなたのパスワードを見ることができます。しかし、アウトソーシングされている場合は、それを防ぐことができます...

于 2012-06-07T09:37:07.377 に答える