トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS   ログイン


* 教えてください。
#freeze
* 教えてください。 [#jbc184dd]
-ページ: [[質問箱]]
-投稿者: [[井合]]
-状態: 提案
-投稿日: 

** メッセージ
** メッセージ [#xebe427a]
perl初心者です。寄せ集めでpassform.cgiを作ってみました。
穴というか危険性というかまったくわかっていないのが現状です。
これをそのままつかってよいものでしょうか。こうすれば…とか,
いうところも併せてよろしく。
#!/usr/local/bin/perl
require './jcode.pl';

$pswd = "1234567";
$action = "./form.cgi";
$openfile = "localhost/cgi-bin/adres.cgi"
print "Content-type: text/html\n\n";
print <<FORM_HTML;
<HTML>
	<HEAD>
		<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=Shift_JIS">
		<TITLE>$title</TITLE>
	</HAED>
	<BODY BACKGROUND="momo.gif">
	<BASEFONT SIZE=3>
	<A HREF="../index.html">メニューに戻る</A><br><br>
<center>
	<FORM ACTION="$action" METHOD="POST">
	<INPUT TYPE="hidden" NAME="status" VALUE="send">
	パスワードを入力してください。<BR><BR>
	<INPUT TYPE="password" NAME="pass" SIZE=12 MAXLENGTH=12>
	<INPUT TYPE="submit" VALUE="入室"><BR>
	</FORM>
</center>
	<HR SIZE=1 NOSHADE>
FORM_HTML

read(STDIN, $pass, $ENV{'CONTENT_LENGTH'});
$pswd1 = "status=send&pass=$pswd";
$pswd2 = "status=send&pass=";

if($pass eq "$pswd1"){
 #!/usr/local/bin/perl
 require './jcode.pl';
 
 $pswd = "1234567";
 $action = "./form.cgi";
 $openfile = "localhost/cgi-bin/adres.cgi"
 print "Content-type: text/html\n\n";
 print <<FORM_HTML;
 <HTML>
 	<HEAD>
 		<META HTTP-EQUIV="Content-Type" CONTENT="text/html;  charset=Shift_JIS">
 		<TITLE>$title</TITLE>
 	</HAED>
 	<BODY BACKGROUND="momo.gif">
 	<BASEFONT SIZE=3>
 	<A HREF="../index.html">メニューに戻る</A><br><br>
 <center>
 	<FORM ACTION="$action" METHOD="POST">
 	<INPUT TYPE="hidden" NAME="status" VALUE="send">
 	パスワードを入力してください。<BR><BR>
 	<INPUT TYPE="password" NAME="pass" SIZE=12 MAXLENGTH=12>
 	<INPUT TYPE="submit" VALUE="入室"><BR>
 	</FORM>
 </center>
 	<HR SIZE=1 NOSHADE>
 FORM_HTML
 
 read(STDIN, $pass, $ENV{'CONTENT_LENGTH'});
 $pswd1 = "status=send&pass=$pswd";
 $pswd2 = "status=send&pass=";
 
 if($pass eq "$pswd1"){
 &html("<center>
<pre>パスワードは正しく入力されました。   </pre><br>
<pre>個人連絡情報登録室に入室します。    </pre><br>
<pre>入室しない時は下記をクリックして下さい。</pre><br>
<META http-equiv=\"refresh\" CONTENT=\"0;URL=http://$openfile\">
移動先<br><br>
<a href=\"http://$openfile\" target=\"_top\">
<b>情報室</b></a><br></center>");
}

elsif($pass eq "$pswd2"){
 <pre>パスワードは正しく入力されました。   </pre><br>
 <pre>個人連絡情報登録室に入室します。    </pre><br>
 <pre>入室しない時は下記をクリックして下さい。</pre><br>
 <META http-equiv=\"refresh\" CONTENT=\"0;URL=http://$openfile\">
 移動先<br><br>
 <a href=\"http://$openfile\" target=\"_top\">
 <b>情報室</b></a><br></center>");
 }
 
 elsif($pass eq "$pswd2"){
 &html("<center>パスワードを入力してください。<br>
<br>戻るボタンを押してください。</center>");
}

elsif($ENV{'CONTENT_LENGTH'} ne 0){
 <br>戻るボタンを押してください。</center>");
 }
 
 elsif($ENV{'CONTENT_LENGTH'} ne 0){
 &html("<center>パスワードがちがいます。<br>
<br>戻るボタンを押してください。</center>");
}

sub html {
 <br>戻るボタンを押してください。</center>");
 }
 
 sub html {
	print "<HTML><HEAD></HEAD>\n";
	print "<BODY BACKGROUND=\"momo.gif\">\n";
	print "<H3>$_[0]</H3>\n";
 }
----
- HTMLの部分をそのままにして貼り付けてしまっているので、レンダリングでおかしくなっています。エスケープしてから貼り付けるなどしてわかりやすくしてもらえませんか? -- [[Bruce.]] &new{2007-06-08 (金) 11:08:25};
- Spamで汚されていたので、直してしまいました。プログラムやスクリプトを貼る時は行頭に空白を入れて整形済みテキストに>元発言の人 -- [[Zazel]] &new{2007-06-09 (土) 12:07:03};

#comment