ネットワークの観点から MySQL データベースのセキュリティを向上させる方法について話しましょう
MySQL データベースをネットワークに接続すると、いくつかの特別なセキュリティ問題が発生します。
ネットワーク接続専用のユーザーを作成することは悪い考えではありません。これにより、必要な最小限の権限がユーザーに付与され、DROP、ALTER、または CREATE 権限などの権限はユーザーに付与されません。 type テーブルでのみ SELECT 権限を付与し、order テーブルでのみ INSERT 権限を付与する場合があります。さらに、これは最小特権の原則を適用する方法の例です。
ヒント: 前のコンテンツでは、問題の原因となる可能性のある文字を削除するための PHP のaddslashes() 関数とstripslashes() 関数について説明しました。データを MySQL データベースに送信する前に、これを忘れずに実行し、一般的なデータ クリーンアップを実行することが非常に重要です。数値データが実際に数値データであるかどうかを確認するために doubleval() 関数を使用したことを覚えているかもしれません。私たちがよく犯す間違いの 1 つは、それを忘れることです。addslashes() を使用することは覚えていても、数値データをチェックすることを忘れることがよくあります。
ユーザーからのすべてのデータは頻繁にチェックする必要があります。 HTML フォームがオプション ボックスとボタンで構成されている場合でも、誰かが URL を変更しようとすることでスクリプトにアクセスできる可能性があります。さらに、ユーザー データのサイズを確認する必要があります。
ユーザーが入力したパスワードや機密データをデータベースに保存する必要がある場合、SSL (セキュアソケットレイヤー、暗号化ソケットレイヤー) でない場合、これらのデータはブラウザからサーバーに渡されることに注意してください。プレーンテキスト。 SSLの利用については後ほど説明します。
危険なコンポーネントを削除する
MySQL データベースのデフォルト構成にはいくつかの不要なコンポーネントが含まれているため、次の提案を検討できます:
1. LOAD DATA LOCAL INFILE コマンドを無効にする
このコマンドにより、ユーザーは次のことを行うことができます。ローカル ファイルを読み取ると、他のオペレーティング システム上のファイルにもアクセスできるため、攻撃者が重要な情報を収集し、アプリケーションの脆弱性を悪用してデータベースに侵入するのに役立つ可能性があります。必要なのは、MySQL データベースの my.cnf ファイルに set-variable=local-infile=0 を挿入して、このディレクティブを無効にすることです。
2. テスト データベースを削除します。
テスト用のデフォルトの「test」データベースがあります。このデータベースはセキュリティ上のリスクがあり、匿名ユーザーがアクセスできるため、mysql> データベース テスト コマンドを使用してできるだけ早くクリアする必要があります。
3. 履歴ファイルを削除します
MySQL サーバーには履歴ファイルがあり、インストールが失敗した場合に問題を見つけるのに役立ちます。履歴ファイルにはパスワードなどの機密情報が含まれており、この情報が攻撃者によって取得されると、データベースに大きなセキュリティ上のリスクが生じます。インストールが成功した後は、履歴ファイルは役に立たないので、cat /dev/null > ~/.mysql_history コマンドを使用してファイルの内容を削除できます。
【関連する推奨事項】
MySQLデータベースのセキュリティを向上させる(1)
MySQLデータベースのセキュリティを向上させる(2)
MySQLデータベースのセキュリティを向上させる(3)
以上がMySQLデータベースのセキュリティ向上 (4)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。