• 締切済み

PerのTaintモードエラー

いつも、参考させて頂きます。 PerlのTaintモードに関しての質問です。 環境:  OS:Windoews XP  WebServer:IIS v5.1  Perl v5.10.0 現象: CGIプログラムにTaintモード(-T)を入れると下記のエラーが発生しております。 エラー内容: 1.ブラウザ:   CGI Error   The specified CGI application misbehaved by not returning a complete set of HTTP headers.   The headers it did return are:   "-T" is on the #! line, it must also be used on the command line at        C:\Inetpub\wwwroot\jimmy\test.cgi line 1.  2.エラーログ   127.0.0.1, -, 2009/05/09, 14:43:50, W3SVC1, XXXX, 127.0.0.1, 15, 286, 485, 502, 0,     GET, /XXXX/test.cgi, -, ソース: #!/usr/local/bin/perl -T print "Content-type: text/html\n\n"; print "Taintモードテスト!"; ※Taintモード(-T)を外すと正常に動作します。 どうしてでしょうか?アドバイスお願い致します。

  • Perl
  • 回答数1
  • ありがとう数1

みんなの回答

  • mattalix
  • ベストアンサー率62% (47/75)
回答No.1

IISがperlに-Tをつけずに実行しています。 『アプリケーションの構成』でperl.exeを-Tつきで実行するように設定すればいいんじゃないですかね(IIS使ったことないので軽く調べただけですが) ただそれをやると.cgi全部-Tつきで実行されるようになるので、別の問題が出る可能性があります。

on1234987
質問者

補足

早速のご回答ありがとうございます。 『アプリケーションの構成』でperl.exeを-T 付けて実行しましたが 変わりなくエラーが発生します。 P.S  設定内容:    拡張子.cgi       C:\usr\local\bin\perl.exe -T "%s" %s    拡張子.pl       C:\usr\local\bin\perl.exe -T "%s" %s 以上、宜しくお願い致します。

関連するQ&A

  • CGIエラー

    CGIビギナーです。 イントラネットで使用しているパソコンをWEBサーバーとして掲示板を設置したいとおもっていますが、CGIエラーがでます。 CGI Error The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are: Can't locate ./jcode.pl at c:\inetpub\wwwroot\AAA\BBB\CCC\DDD.cgi line 34. CGI自体は以下のCGIファイルで試したところ、 ちゃんとIEで表示されました。 #!/usr/local/bin/perl print "Content-type: text/html\n\n"; print "<HTML><BODY>\n"; print "<H2>Hello!</H2>\n"; print "</BODY></HTML>\n"; exit; なので、CGIとしては動作できる環境になっているとおもっていて、ソースの間違いだろうなぐらいしか分かりません。 (ビギナーが)間違えそうなところをご指摘お願いします。 OS WINDOWS2000 PRO IIS5.0

    • 締切済み
    • CGI
  • たびたび表示される”CGI Error”

    フリーのCGIや、PHPをレンタルサーバで動かしているんですが、 以前は問題なかったのに、最近下記のエラーメッセージが頻繁に出る用になりました。 --------------------- CGI Error The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are: --------------------- しかも、再読み込みをしなおせば、CGIもPHPも動作しています。 これはプログラム側の問題でしょうか? それともサーバ側の問題でしょうか? ご存知の方、教えてください~~。

    • 締切済み
    • CGI
  • CGIエラー

    アクセス解析のCGIを設置しようとしてるのですが、動作確認の際に、以下のエラーが出ます。 The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are: Can't locate config.pl in @INC (@INC contains: C:/Perl/lib C:/Perl/site/lib .) at C:\daishin_www\cgi-bin\access\accview.cgi line 83. CGIを設置するのはこれが初めてなので、このエラー文が何を言いたいのか、どこを直せば動くようになるのか、ぜんぜんわからずに困っています。 どなたか教えて頂けませんか? サーバーは自社サーバーでWindowsです。

    • ベストアンサー
    • CGI
  • CSVダウンロードについて

    IIS/perl/oracle お世話になります。 社内の業務ホームページにて、データをダウンロードできるシステムの改造を行っています。 本番環境とテスト環境があり、ほぼ同じような環境にして あります。 なのに、本番環境ではちゃんと”ファイルをダウンロード”という ダイヤログが表示されるのに、同じモジュールをテスト環境にもってくるとダイヤログが出ずに CGI Error The specified CGI application misbehaved by not returning a complete set of HTTP headers. と出ます。perlの-wcオプションをつけてのデバッグでsyntaxはOKと出るし、本番環境で動くことから、スクリプト自体に問題はないと思っているのですが、環境面で何か設定しなくてはいけないことがあるのでしょうか? 念のためスクリプトを載せます。 binmode(STDOUT); print "Content-Type: application/octet-stream; name=\"$fname\"\n"; print "Content-disposition: attachment; filename=\"$fname\"\n"; print "Content-length: $size\n"; print "\n"; (1) print $CSV; close(STDOUT); どうも(1)あたりでこけてるようなのですが・・・。(少なくともbinmode手前まではprintを差し込んで動いているのを確認できています) IISの設定等、あまり詳しくはないので、初心者向けに 教えていただくと助かります。 よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • CGI プログラムエラーの解決法を教えてください。

    CGIの勉強をしている初心者です。 CGI プログラムを起動させると、 Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request.・・・・・ となってしまい、CGIがブラウザに表示されません。 どなたか解決法をご存知の方、教えてください。 (使用PCは、MacOSX(10.6.8)です。) 行った手順 1. Apacheの動作確認 [Machintosh HD]→[アプリケーション]→[システム環境設定] → 共有・アイコン → 「Web 共有」にチェックを入れる。 2. test.cgiを設置 設置場所 [Machintosh HD]→[ライブラリ]→[WebServer] → 「CGI-Executables」にtest.cgiを設置 test.cgiは下記 #!/usr/bin/perl print "Content-type: text/html\n\n"; print "<HTML>\n"; print "<HEAD><TITLE>CGI TEST</TITLE></HEAD>\n"; print "<BODY>ちわ!世界。</BODY>\n"; print "</HTML>\n"; __END__ 3.ターミナルでCGIプログラムに実行権をつける chmod 755 /Library/Webserver/CGI-Executables/test.cgi 4.ブラウザに「http://localhost/cgi-bin/test.cgi」を入力 最初に表示した「Internal Server Error」になってしまう。 ちなみに・・・ 1. ファイルに実行権限が付いているか確認したところ、下記のようになりました。 ls -la /Library/WebServer/CGI-Executables/test.cgi -rwxr-xr-x@ 1 taka staff 188 2. Syntaxを確認したところ、下記のようになりました。 perl -c /Library/Webserver/CGI-Executables/test.cgi /Library/Webserver/CGI-Executables/test.cgi syntax OK 3. ターミナルにて、which perlを確認したところ、下記のようにまりました。 /usr/bin/perl 4. tail -f /private/var/log/apache2/error_logにてApacheのエラーログを確認をしたところ、下記のようになりました。 [Thu Sep 22 22:31:17 2011] [error] [client 127.0.0.1] (8)Exec format error: exec of '/Library/WebServer/CGI-Executables/test.cgi' failed [Thu Sep 22 22:31:17 2011] [error] [client 127.0.0.1] Premature end of script headers: test.cgi エラーログの見方、解決法もわからない初心者です。 どなたか解決法をご存知のかた、教えてください。 どうぞよろしくお願いいたします。

    • 締切済み
    • CGI
  • エラー表示の意味を解説してください

    CGI初心者です。自分の端末でサーバ設定し、テスト中の段階です。htmlファイルはブラウザからきちんと表示されました。が、CGIファイルを表示させようとすると、 CGI エラー - Content-Type ヘッダが正しくありません。 CGI 出力メッセージ: Can't open perl script "C:\www\hiro\ISO": No such file or directory とエラーがでます。ちなみに、スクリプトには #!/usr/bin/perl print"Content-type: text/html\n\n"; print"<HTML>\n"; print"<HEAD>\n"; print"<TITLE>CGI No1</TITLE>\n"; print"</HEAD>"; print"<BODY>\n"; print"CGIプログラム No.1,テスト成功!\n"; print"</BODY>\n"; print"</HEAD>\n"; と記述しました。なにがいけないのか教えてください。

    • ベストアンサー
    • CGI
  • CGI設置時に500エラーになります

    CGIを設置しようとしたところ、500 Internal Server Error になります。 共用サーバーIDを使用しています。 CGIファイルは「cgi-bin」の中に入れています。 たとえばこんな簡単なCGIでテストしたのですが、500 Internal Server Errorになってしまいます。 ↓ #!/usr/local/bin/perl print "Content-type: text/html \n\n"; print "Hello"; #!/usr/local/bin/perlを #!/usr/bin/perlにしても結果は同じです。 (サーバーの指定は#!/usr/local/bin/perl) パーミッションは755にしています(705に変えてもダメでした)。 CGIファイルの改行コードはLFにしており、テキスト(ASCII)モードでアップロードしています。 それでも500 Internet Server Errorになります。 サーバーではエラーログが見られないのでみなさんにお聞きしたいのですが、他にどんな原因が考えられるでしょうか?

  • なぜエラー?

    フォームに書き込まれた内容をCGIへ送る練習をしているのですが、どーーーーしてもエラーがでます(泣) 何故でしょうか。(改行や日本語処理はおいておいて下さい) CGI側をコピペしてみます。 #!/usr/local/bin/perl require 'lib/cgi-lib.pl'; &ReadParse(*form); print "Content-type: text/html\n\n"; print "<html>\n"; print "<head><title></title></head>\n"; print "$form{'kousin'}\n"; print "</body>\n"; print "</html>\n"; __END__ でエラー内容が # lib/cgi-lib.pl did not return a true value. File 'Macintosh HD:Desktop Folder:home:new:new.cgi'; Line 3 です。 cgi-lib.plは置き場所を変更してみたりしてるんですが、どこに置いても同じです。Line3ってこれ以上どーすればいいのでしょう‥‥うぅ。 MacOSでMacJPerl、サーバーにQuid Pro Quoを使ってます。

    • ベストアンサー
    • Perl
  • CGIのエラー

    やっとIISにPerlを組み込むことができたのですがエラーが出て先に進めません cgiを実行すると CGI Error The specified CGI application misbehaved by not returning a complete set of HTTP headers. と表示されます 何が何だかさっぱりわかりません ご指導願います

  • C言語で作成したCGIにて「Internal Server Error」

    こんばんは。CGIについて質問させて下さい。 現象: C言語でCGIを作成し、ローカルで動作しているApacheで 動作確認をしようとしたところ、 「Internal Server Error」が出てしまいました。 質問: 上記の現象が起こったのですが、C言語でCGIを実行するには なにが足りないでしょうか? 環境: OS:WindowsXP Webサーバ:Apache 2.0.61 Cコンパイラ:gcc 3.4.4(cygwin) 状態: ○「http://localhost:8080/」にアクセスすると「あなたの予想に反して・・・」画面は見れます。 ○「http://localhost:8080/cgi-bin/test.cgi」にアクセスすると、「Internal Server Error」が表示されます。 ○httpd.confの設定値(デフォルトから修正した部分) ・ServerName 127.0.0.1:8080 ・<Directory "C:/Program Files/Apache Group/Apache2/cgi-bin">内 Options none → Options ExecCGI ・#AddHandler cgi-script .cgi → AddHandler cgi-script .cgi ○Apacheのerror.log ~[error] [client 127.0.0.1] Premature end of script headers: test.cgi ○test.cgiのコンパイル前ソース ---ここから #include <stdio.h> int main(void){  printf("Content-Type: text/html\n\n");  printf("<html><body>Hello, World!</body></html>");  return 0; } ---ここまで ○test.cgiはcygwinにて標準出力を確認済み。 ・・・ちなみにperlでCGIを作成すると表示されます。 (ActivePerlインストール済み) perl側のソース ---ここから #! c:/perl/bin/perl print "Content-Type: text/html\n\n"; print "<html><body>"; print "Hello, CGI!"; print "</body></html>" ---ここまで なにかおかしな点がございましたらご指摘をお願い致します。

    • ベストアンサー
    • CGI

専門家に質問してみよう