2012年2月18日土曜日

開発環境

  • OS X Lion - Apple(OS)
  • Apache (Web Server)
  • PHP (サーバーサイドプログラミング言語)
  • MySQL (データベース)
  • TextWrangler(Text Editor) (BBEditの無料機能制限版、light版)

『初めてのPHP & MySQL 第2版』(Michele E. DavisJon A. Phillips 著、西沢 直木 訳、オライリー・ジャパン、2008年、ISBN978-4-87311-365-4)の15章(セキュリティ)の問題を解いてみる。

問15-1.

インクルードファイルの拡張子は、.incではなく、.phpとすべきなのは、.incではPHPのスクリプトがそのままブラウザに表示されてしまうから。

問15-2.

データベースに格納する前にパスワードをエンコードする場合、md5()関数より安全な関数はsha1()関数。実際に長さを比較。

sample53.php

コード(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 コメント:

コメントを投稿