開発環境
- OS X Lion - Apple(OS)
- Apache (Web Server)
- PHP (サーバーサイドプログラミング言語)
- MySQL (データベース)
- TextWrangler(Text Editor) (BBEditの無料機能制限版、light版)
『初めてのPHP & MySQL 第2版』(Michele E. Davis、Jon A. Phillips 著、西沢 直木 訳、オライリー・ジャパン、2008年、ISBN978-4-87311-365-4)の15章(セキュリティ)の問題を解いてみる。
問15-1.
インクルードファイルの拡張子は、.incではなく、.phpとすべきなのは、.incではPHPのスクリプトがそのままブラウザに表示されてしまうから。
問15-2.
データベースに格納する前にパスワードをエンコードする場合、md5()関数より安全な関数はsha1()関数。実際に長さを比較。
コード(TextWrangler)
<html>
<head>
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
<title></title>
</head>
<body>
<?php
$password = "password";
$password1 = MD5($password);
$password2 = sha1($password);
echo "パスワード: $password<br />";
echo "暗号化<br />";
echo "mod5()関数: $password1<br />";
echo "sha1()関数: $password2<br />";
?>
</body>
</html>
問15-3.
スクリプトでオートグローバル変数を使用してはいけないのは、悪意のあるユーザが想定外のパラメータをGETやPOSTに与えてPHPスクリプトを実行できてしまうから。
問15-4.
「しrん来仕手はいけないユーザデータ」には、
- GETに含まれるデータ
- POSTに含まれるデータ
- Cookie
- セッションデータ
- ブラウザから与えられた$_SERVER[]スーパーグローバルの値
がある。
併せて読んでいる書籍。
0 コメント:
コメントを投稿