Php.iniでmysql.safe_mode
を有効にすることを推奨するセキュリティに関するWebサイトをいくつか見てきました
# Enable SQL safe mode
sql.safe_mode = On
これに関する情報を見つけるために一生懸命検索したとき、私はこれを見つけました:
SQLセーフモードオプションが有効な場合、MySQLおよびIngres拡張機能は、提供されたホスト、ユーザー、およびパスワード情報を無視し、デフォルトのもののみを使用します。
その音によって、それは本当にセーフモードよりも安全でないモードのように聞こえます。それは、アプリケーション(たとえばJoomla)がmysqlユーザーに低い悪意を提供したとしても、これを有効にするとmysqlがデフォルトのrootユーザーを使用するようになるということですか?私はそれが何をするのか誤解しましたか? PHPでsql.safe_mode
を有効にする利点は何ですか?
safe_mode を使用するには、構成パラメーターを使用して、データベースのホスト、ユーザー名、およびパスワードをphp.iniに設定します。
sql.safe_mode = On
mysqli.default_Host = "127.0.0.1"
mysqli.default_port = "3306"
mysqli.default_user = "root"
mysqli.default_pw = "Password123"
そこに設定することで、PHPスクリプトで必要なくなります。MySQLパスワードを1か所から更新できると同時に、パスワードを含めないようにソースコードを安全にできます。ソースコードのバージョン管理リポジトリなどにコミットする前に、パスワードを手動で削除してください。
PHPスクリプトでは、次を使用する代わりに:
<?php
$oDB = new mysqli( "127.0.0.1", "root", "Pass123", "database_name", "3306" );
あなたが使用するかもしれません:
<?php
$oDB = new mysqli();
$oDB->select_db( "database_name" );