PHP実践のツボ
〜セキュアサイト構築テクニック〜
〜セキュアサイト構築テクニック〜
■■ サポートページ ■■
■ サンプルスクリプトのダウンロードについて
サンプルスクリプトが著者の山本勇氏のサイトからダウンロードできるようになりました。
山本 勇氏のサイト: http://www.trustbee.com/
サンプルスクリプトが著者の山本勇氏のサイトからダウンロードできるようになりました。
山本 勇氏のサイト: http://www.trustbee.com/
■ 訂正
◇ 45ページのスクリプトの37行目
【誤】
$message = strip_tags($contents); // テキスト部分の抽出
【正】
$message = strip_tags($contents); // HTMLタグの削除
◇ 49ページのスクリプトの5行目
◇ 52ページのスクリプトの5行目
【誤】
$full = HTTP_PROTOCOL.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
【正】
$full = "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
◇ 49ページのスクリプトの15行目
◇ 52ページのスクリプトの15行目
◇ 51ページの下段のスクリプトの15行目
◇ 56ページのスクリプトの15行目
【誤】
if (ereg("^http://", $url)) {
【正】
if (!ereg("^http://", $url)) {
◇ 83ページのスクリプトの22行目
【誤】
$pass = $_POST["pass"];
【正】
行ごと削除
◇ 116ページのスクリプトの26行目から28行目
【誤】
while (list(, $val) = each($filelist))
echo '<li><a href="logview.php?filename='.$val.'">';
echo .$val.'</a></li>';
【正】
while (list(, $val) = each($filelist)) {
echo '<li><a href="logview.php?filename='.$val.'">';
echo
$val.'</a></li>';
}
◇ 120ページのスクリプトの140行目から145行目を差し替え
【誤】
echo " <a href=\"".$_SERVER[PHP_SELF]";
echo "?filename=$filename&$key=";
echo ".urlencode($vkey)."\">";
echo $vkey ? strshorten($vkey) : ' ';
echo "</a></td>";
echo " <td align=v"right\">$vval</td></tr>";
【正】
echo " <a href=\"".$_SERVER[PHP_SELF]
;
echo "?filename=$filename&$key=";
echo
urlencode($vkey)."\">";
echo $vkey ? strshorten($vkey) : ' ';
echo "</a></td>";
echo " <td align=\"right\">$vval</td></tr>";
◇ 120ページのスクリプトの158行目
行番号を折り返し記号に変更
◇ 132ページのスクリプトの25行目
下記の行を追加
?>
◇ 186ページのスクリプトの12行目
【正】 system("/bin/cat ".DATA_FILE." | /bin/grep " $query);
【誤】 system("/bin/cat ".DATA_FILE." | /bin/grep ".$query);
◇ 45ページのスクリプトの37行目
【誤】
$message = strip_tags($contents); // テキスト部分の抽出
【正】
$message = strip_tags($contents); // HTMLタグの削除
◇ 49ページのスクリプトの5行目
◇ 52ページのスクリプトの5行目
【誤】
$full = HTTP_PROTOCOL.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
【正】
$full = "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
◇ 49ページのスクリプトの15行目
◇ 52ページのスクリプトの15行目
◇ 51ページの下段のスクリプトの15行目
◇ 56ページのスクリプトの15行目
【誤】
if (ereg("^http://", $url)) {
【正】
if (!ereg("^http://", $url)) {
◇ 83ページのスクリプトの22行目
【誤】
$pass = $_POST["pass"];
【正】
行ごと削除
◇ 116ページのスクリプトの26行目から28行目
【誤】
while (list(, $val) = each($filelist))
echo '<li><a href="logview.php?filename='.$val.'">';
echo .$val.'</a></li>';
【正】
while (list(, $val) = each($filelist)) {
echo '<li><a href="logview.php?filename='.$val.'">';
echo
}
◇ 120ページのスクリプトの140行目から145行目を差し替え
【誤】
echo " <a href=\"".$_SERVER[PHP_SELF]";
echo "?filename=$filename&$key=";
echo ".urlencode($vkey)."\">";
echo $vkey ? strshorten($vkey) : ' ';
echo "</a></td>";
echo " <td align=v"right\">$vval</td></tr>";
【正】
echo " <a href=\"".$_SERVER[PHP_SELF]
echo "?filename=$filename&$key=";
echo
echo $vkey ? strshorten($vkey) : ' ';
echo "</a></td>";
echo " <td align=\"right\">$vval</td></tr>";
◇ 120ページのスクリプトの158行目
行番号を折り返し記号に変更
◇ 132ページのスクリプトの25行目
下記の行を追加
?>
◇ 186ページのスクリプトの12行目
【正】 system("/bin/cat ".DATA_FILE." | /bin/grep " $query);
【誤】 system("/bin/cat ".DATA_FILE." | /bin/grep ".$query);