私は学生で、病院向けの簡単な情報システムを作っています。機密情報が保護されるように、mysqlデータベースのセキュリティをどのように改善できますか。
5 に答える
頭のてっぺんからほんの少し...
- 適切なパスワードを使用する
- アクセス元の場所からのみサーバーへのアクセスを許可します。例えば。同じマシン上のWebサーバーからのみアクセスする必要がある場合は、マシンの外部からmysqlにアクセスすることを許可しないでください。
- アクセスできる各ユーザーに自分のユーザー名とパスワードを与え、実行する必要のあるアクションのみに制限します。DROP、DELETEなどを無効にし、平均的なユーザーにデータベースの変更、テーブルの作成、テーブルの変更などの権限を与えないでください。
- MySQLで使用されているユーザー権限システムを理解していることを確認してください。最初は悪夢ですが、入手すると多くの制御が可能になります。
- 安全だと思い込まないでください-そうではありません-何をしたかに関係なく、いつでももっと多くのことができます。
セキュリティは複雑な問題であり、漠然とした質問に答えることは困難です。
いくつかの一般化。
データベースとアプリケーションを同じサーバーに配置することが理にかなっている場合は、データベースへのすべてのリモート アクセスを無効にしてください。欠点は、これにより、別個のデータベース サーバーとアプリケーション サーバーを使用してスケーリングする能力が制限されることです。
また、複製が必要かどうかを判断する必要があります。その場合は、アクセスを許可する必要がありますが、それを回避できる場合は許可しないでください。
ユーザー名とパスワードの管理には厳格である必要があります。私は実際には、ユーザー名とアプリケーション アクセス用のパスワードの両方にパスワード ジェネレーターを使用していますが、どこまで行くかはあなた次第です。
誰かがあなたのデータベースにアクセスすることを想定する必要があります。各「ユーザー」は、ユーザーがそのジョブを実行するために必要な権限のみを持つ必要があります。各ユーザーができることが少ないほど、誰かが侵入したときに安全になります。アプリケーションの各ビットが自分の仕事だけを実行できるように、複数のユーザーを作成する必要がある場合があります。
最後に、データベースにアクセスすることによる影響を考慮する必要があります。健康記録には非常に高いレベルのセキュリティが必要だと思います。データベース自体で何らかの形式の暗号化/難読化を検討するかもしれませんが、私はこれを自分で行う必要がなかったため、これ以上コメントすることはできません.
- 適切なパスワードを使用する
- 特定の IP からの訪問者のみを許可する
- 強力なパスワードシステムにより、ハッキングされても、自分でさえ誰も取得できません
md5('your-password')
のようなものを試してくださいmd5(md5('your-password').'your-password')
。
アプリケーションからのSQL インジェクションを許可しないようにしてください。
アプリケーション サーバーの IP アドレスを除くすべての IP アドレスからの接続を禁止します。また、DB を使用するアプリケーションにセキュリティ ホールがないことを確認してください。:)