web-dev-qa-db-ja.com

php.iniファイルでmysql.safe_modeを使用するのは何ですか?

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を有効にする利点は何ですか?

3
Neel

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" );
5
richhallstoke