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);

?>


エラーが起きた場合の出力