web-dev-qa-db-ja.com

データベースアクセスを保護する方法

私は、MySQLデータベースに保存された比較的機密性の高い(系譜)情報を多く含む個人用Webサイトを開発しています。サイトエンジンはPHPで記述されています。これまで(プロトタイプフェーズ)、MySQLアカウントを1つしか持たず、PHPにデータベースログインとパスワードをハードコーディングし、MySQL認証とは別にユーザー認証を実装しました。したがって、人々が私のPHPエンジン経由で私のWebサイトにアクセスする限り、それは安全です。ただし、誰かがPHPコード自体を取得できた場合、データベースへのフルアクセスを取得できます。

サイトユーザーごとに個別のMySQLアカウントを作成し、ユーザーパスワードを使用してMySQLにアクセスすることで、データベースをさらにセキュリティで保護することは可能ですか?はいの場合、セッション間で何らかの方法でデータベースのログイン/パスワードを安全に保存することは可能ですか?

私はWeb開発の経験があまりありません。これは、自己プログラムCMSを使用した最初のプロジェクトです。

3
texnic

いいえ、すべてのサイトユーザーに対してデータベースユーザーを作成することはお勧めできません。現在の設定方法はかなり標準的です。サーバーが危険にさらされない限り、人々がPHPコードに保存されているパスワードにアクセスすることはできません。これはほとんど最悪のシナリオです。

唯一の注意点は、プロジェクトに何らかの形式のソース管理(Gitなど)を使用している場合、リポジトリにパスワードを含む構成ファイルを保持しないでください。そうすれば、Githubのようなサービスを使用している場合や、他の人にコードへのアクセスを許可する必要がある場合に、誤ってパスワードを公開することを回避できます。

3
Tim Fountain