PHP、MySQLのセキュリティについてのメモ
セキュリティについて勉強中
とりあえず分かったことを書いていこうかと
- パスワードは暗号化してデータベースに格納
暗号化していないとデータベースにアクセスできる人全員がパスワードを取得することができてしまう。
暗号化する方法
PHPにはmd5,sha1という暗号化するための関数が用意されているのでそれを使う。
md5よりもsha1の方が進歩したアルゴリズムで暗号解読がされにくい。
使用例
<?php print md5('HelloWorld'); print '<br/>'; print sha1('HelloWorld'); ?>
- MySQLのエラーメッセージを非表示にする。
データベース接続がうまくいかない場合い出力されるエラーメッセージの中にはデータベースの場所が含まれている。
例えば
<?php $error = "Error!"; //データベースサーバへの接続 $db = mysql_connect($db_host,$db_user,$db_passwd) or die($error); //データベースの選択 mysql_select_db($db_name,$db) or die($error); ?>
これを改善するにはデータベース関数の前に@を付ける
<?php $error = "Error!"; //データベースサーバへの接続 $db = @mysql_connect($db_host,$db_user,$db_passwd) or die($error); //データベースの選択 @mysql_select_db($db_name,$db) or die($error); ?>