httpd.conf 修正 ver 02

次へ

cgi 試験用の ファイルの 変更 エスケープ

改悪して 使用している cgi プログラムですが すこし くどい ようなので エ スケープ した部分を すこし 修正します。これは ”\”条件によ り ”¥” 円記号に 見える 場合も有りますが、見てる環境により何だ? と思 われるかも しれませんが この記号で ”< ”や” / ”を エスケープ したつもりで した 当然 ”"” も したいけれど これはそのまま エスケープ で残す事にしていま す。

元の smp-time-test.cgi

最初に 試験用として 以下のものを作成していました

$ cat smp-time-test.cgi 
#!/usr/local/bin/perl -w

use strict;

my($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);

my $Ctime_string = localtime(time);

$mon+=1;
$yday+=1;
$mon = $mon < 10 ? $mon = "0".$mon : $mon;
$mday = $mday < 10 ? $mday = "0".$mday : $mday;
$hour = $hour  < 10 ? $hour  = "0".$hour  : $hour ;
$min = $min < 10 ? $min = "0".$min : $min;
$sec = $sec < 10 ? $sec = "0".$sec : $sec;
$year+=1900;
my $kouki+=$year+660;
my @Wdayname = ("日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日");
my @Momnthname = ("","睦月","如月","弥生","卯月","皐月","水無月","文月",\
"葉月","
長月","神無月","霜月","師走");
my @Ddatename = ("","一日","二日","三日","四日","五日","六日","七日",\
"八日","九日","十日","十一日","十二日","十三日","十四日","十五日",\
"十六日","十七日","十八日","十九日","二十日","二十一日",\
"二十二日","二十三日","二十四日","二十五日","二十六日","二十七日",\
"二十八日","二十九日","三十日","三十一日");
print "Content-type: text/html;\n\n";

print "\<!DOCTYPE html PUBLIC \"-\/\/w3c\/\/DTD HTML 4.01 Transitional\/\/EN\">\n";
print "\<meta http-equiv=\"content-type\" content=\"text\/html; charset=EUC-JP\">\n";
print "\<html lang=\"ja\"> \n";
print "\<head>\n";
print "\<title>sample form 002 \<\/title>\n";
print "\<\/head>\n";
print "\<body>\n";
print "今の 時間は $hour 時  $min 分 $sec  秒 です。\n";
print "\n";
print "\n";
print "今日は 西暦 $year 年  $Momnthname[$mon]  $Ddatename[$mday]  $Wdayname[$wday]です。\n";
print "\n";
print "皇紀  $kouki 年です \n";
print "\n";
print "確認用  :  $Ctime_string\n";
print "\<\/body>\n";
print "\<\/html>\n";

< 、 ”、/ とかは \ にて エスケープ してあります

今回 は 以下のものに 置き換えました

#!/usr/local/bin/perl -w

use strict;

my($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
my $Ctime_string = localtime(time);

$mon+=1;
$yday+=1;
$mon = $mon < 10 ? $mon = "0".$mon : $mon;
$mday = $mday < 10 ? $mday = "0".$mday : $mday;
$hour = $hour  < 10 ? $hour  = "0".$hour  : $hour ;
$min = $min < 10 ? $min = "0".$min : $min;
$sec = $sec < 10 ? $sec = "0".$sec : $sec;
$year+=1900;
my $kouki+=$year+660;
my @Wdayname = ("日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日");
my @Momnthname = ("","睦月","如月","弥生","卯月","皐月","水無月",\
"文月","葉月","長月","神無月","霜月","師走");
my @Ddatename = ("","一日","二日","三日","四日","五日","六日","七日",\
"八日","九日","十日","十一日","十二日","十三日","十四日","十五日",\
"十六日","十七日","十八日","十九日","二十日","二十一日","二十二日",\
"二十三日","二十四日","二十五日","二十六日","二十七日","二十八日",\
"二十九日","三十日","三十一日");
print "Content-type: text/html;\n\n";

print "<!DOCTYPE html PUBLIC \"-//w3c//DTD HTML 4.01 Transitional//EN\">\n";
print "<meta http-equiv=\"content-type\" content=\"text\/html; charset=EUC-JP\">\n";
print "<html lang=\"ja\"> \n";



print "<head>\n";
print "<title>sample form 002 </title>\n";
print "</head>\n";
print "<body>\n";

print "今の 時間は $hour 時  $min 分 $sec  秒 です。\n";
print "\n";
print "\n";
print "今日は 西暦 $year 年  $Momnthname[$mon]  $Ddatename[$mday]  $Wdayname[$wday]です。\n";
print "\n";
print "皇紀  $kouki 年です \n";
print "\n";
print "確認用  :  $Ctime_string\n";
print "</body>\n";
print "</html>\n";

これを 設定して 当然 perl のパスを合わせないと いけませんが アクセス した結果の log を 見ると

/*  最初は log には なにもなし */
sv:/var/data/www/apache2/logs# ls -l
total 4
-rw-r--r--    1 root     root            0 Sep 27 21:42 access_log
-rw-r--r--    1 root     root            0 Sep 27 21:42 error_log
-rw-r--r--    1 root     root            4 Sep 26 23:15 httpd.pid
/*  html ファイルに アクセスした  */
sv:/var/data/www/apache2/logs# ls -l
total 8
-rw-r--r--    1 root     root           94 Sep 27 21:42 access_log
-rw-r--r--    1 root     root            0 Sep 27 21:42 error_log
-rw-r--r--    1 root     root            4 Sep 26 23:15 httpd.pid
sv:/var/data/www/apache2/logs# cat access_log 
192.168.0.5 - - [27/Sep/2007:21:42:53 +0900] "GET /~aite/test/002_test.html HTTP/1.1" 200 629

/*  html ファイル から cgi に アクセスした  */
sv:/var/data/www/apache2/logs# ls -l
total 8
-rw-r--r--    1 root     root          190 Sep 27 21:43 access_log
-rw-r--r--    1 root     root            0 Sep 27 21:42 error_log
-rw-r--r--    1 root     root            4 Sep 26 23:15 httpd.pid
sv:/var/data/www/apache2/logs# cat access_log 
192.168.0.5 - - [27/Sep/2007:21:42:53 +0900] "GET /~aite/test/002_test.html HTTP/1.1" 200 629
192.168.0.5 - - [27/Sep/2007:21:43:13 +0900] "POST /cgi-bin/smp-time-test.cgi HTTP/1.1" 200 370

もう少し すっきり したいけど それは 又 後で考えましょう。

にゃんたろう 拝!

2007年 9月24日 (月) 21:12:24 JST 作成


次へ

httpd.conf 修正 ver 02

Copyright © 2007. nyantarou All Rights Reserved.