• 締切済み

ダイレクトアクセス

Perlでダイレクトアクセスを防ぐにはどうすればいいですか? 調べてもURL転送とかのしかでてきませんでした。 またそういうのを詳しく解説しているサイトがあれば教えてください。

みんなの回答

  • JIF0131
  • ベストアンサー率50% (1/2)
回答No.2

少々間違えがございました 修正版です #!c:/Perl/bin/Perl.exe print "Content-type: text/html\n\n"; &Main(); sub Main { my @url; my $flag=1; #アクセスを許可する呼び出し元URL $url[0]='http://localhost/cgi-bin/a.pl'; $url[1]='http://localhost/cgi-bin/b.pl'; foreach (@url){ if($ENV{'HTTP_REFERER'} and $ENV{'HTTP_REFERER'}=~/^$_$/i){ $flag=0; } } if($flag!=0){ print "アクセス許可がありません\n"; exit($flag); } } print<<End_Of_Program; <html> <head> <title>任意のHP </title> </head> <body> </body> </html> End_Of_Program 改行 今回は見やすいように全角スペースは使用していませんので そのまま貼り付けすればできるかと思います。 あと一番上の行のPerlのPASSを自分の環境に合わせて変えて下さい。

wc13
質問者

お礼

やりましたがやはりエラーがでます。 治しても同じでした。文法チェッカーではさっきよりもっと文法エラーがでています。 やはり早いようですね。 有り難うございました。

すると、全ての回答が全文表示されます。
  • JIF0131
  • ベストアンサー率50% (1/2)
回答No.1

#!c:/Perl/bin/Perl.exe print "Content-type: text/html\n\n"; &Main(); sub Main {   my @url;   my $flag=1;   #アクセスを許可する呼び出し元URL   $url[0]='http://localhost/';   $url[1]='http://localhost/index.html';   foreach (@url){     if($ENV{'HTTP_REFERER'} and $ENV{'HTTP_REFERER'}=~/^$_$/i){       $flag=0;     }   }   if($flag!=0){     print "アクセス許可がありません\n";     exit($flag);   } } print"End_Of_Program"; <html> <head> <title>任意のHP </title> </head> <body> </body> </html> End_of_Program (改行) こんな感じでできますよ。

wc13
質問者

お礼

それを試しましたがエラーがでました。 Unrecognized character \x81 at test2.cgi line 11. 11行目はなんら問題ないみたいですけれど。 自分じゃまだ早いってことなんですかね。 有り難うございました。

すると、全ての回答が全文表示されます。

関連するQ&A