phpからDB(mysql)に接続する際のID/PWについて
PHPでDB(mysql)に最初の接続する際、以下の関数を使って接続する
mysql_connect('HOSTNAME', 'USERNAME', 'PASSWORD');
php mysqlで接続法などを調べると、だいたい上記のようなことが書いてある。
ただ、これだとプログラム本体に、id/pwを書くことになるので、感覚的にちょっと怖いな。と思ってしまう
たまたまgoogleで調べものをしていたら、上記のようなケースの対処法が書いてあったので、メモ。
mysqlへアクセスするためのIDとパスワードの保存場所
http://www.phppro.jp/qa/1799
上記を参考に、実際にid/pwなどを書いたファイルを別ファイルとし、非公開ディレクトリ(htaccessで制御)に置きDB接続を試してみた。
以下のようにファイルを配置してみた。
test.php id_pw/ - .htaccess - config.inc
id_pw/config.inc
<? $db['host'] = "localhost"; $db['user'] = "username"; $db['pass'] = "pw12345"; $db['dbname'] = "dbname"; ?>
id_pw/.htaccess
<Files ~ "\.(dat|log|csv|inc)$"> deny from all </Files>
test.php
require_once('./id_pw/config.inc'); $conn = mysql_connect($db['host'], $db['user'], $db['pass']);
参照:http://www.phppro.jp/qa/1799
上記で、id_pw/config.incにブラウザでアクセスすると、500のエラーが返ってくるが、
phpから、config.incを読み込むと、無事DBに接続できた。
これで少しは安全になるの。かな?わからんけど。