• ベストアンサー

cgiでエラーがでてしまします

こんにちは今度初めてホームページを作っている者です そのなかでスケジュール表をcgiで動かそうと思いフリーの物を探して設置したのですがどうもうまく動きません 具体的には 1.閲覧はできる 2.管理者用の設定画面も問題はない 3.新規投稿をするとエラーがでる 以上です http://www.ace-cgi.jp/cgi/sch/004/index.html ↑cgi入手先 おわかりの方いらっしゃいましたら解決策を教えてください よろしくお願いします

質問者が選んだベストアンサー

  • ベストアンサー
  • hofuhofu
  • ベストアンサー率70% (336/476)
回答No.7

ちょっと興味を持って調べてみただけなので、間違っているかもしれません。 Taint(汚染検出)モードで実行されているために、$filenameが「汚染」されているとみなされているような気がします。 それで$filenameでファイルを開こうとして、エラーがでているのではないかと。 http://www.ipa.go.jp/security/awareness/vendor/programming/a04_03_main.html ここの受け売りですが、512行の $filename = "$FORM{'year'}_$FORM{'month'}\.dat"; の下に、 if ($filename =~ /^([-\@\w.]+)$/) { $filename = $1; } else { die "Bad data in name."; } を追加してみてください。

参考URL:
http://www.ipa.go.jp/security/awareness/vendor/programming/a04_03_main.html
noname#14576
質問者

お礼

できました! 汚染検出で引っかかっていたようです 本当にありがとうございました

その他の回答 (6)

noname#191236
noname#191236
回答No.6

TripodのCGIはTaint モードというので動作しているようで、 なにか危険な部分があるとエラーで動かないようです・・・。 so_blueさんが同様の事があったようなので、 実際に経験された方の回答のほうが参考になりますね。 お役に立てずにすみませんでした。(^^; それでは失礼します。m(_ _)m

noname#14576
質問者

お礼

いえいえ 貴重な時間を割いてくださってありがとうございました

  • so_blue
  • ベストアンサー率48% (50/104)
回答No.5

if(!open(OUT,">>$filename")){  &error("file open error!"); } の部分を open(OUT,">>$filename") or &error("file open error!"); にしてみてはどうでしょう。 # 単に言い回しを変えてみただけです # 改変は個人責任で行って下さいね :-) # 改変前のスクリプトのバックアップも忘れずに 原因は不明なのですが、自分も if(!open~ だと何故かエラーになったケースがありました。 しかし、改造については許可されているのでしょうかね?

noname#14576
質問者

お礼

無事問題解決できました ありがとうございました

noname#14576
質問者

補足

上記の3行をすべて書き換えということですよね? やはり Your script produced this error: Insecure dependency in open while running setgid at ./sch004.cgi line 509 となってしまいます 改造については各自行って良いそうです

回答No.4

 私は、Tripodに使っていないHPスペースを持っているので、早速調べてみました。  結果、sch004.cgiの中で、下のところでエラーが発生していて、何らかの理由で、ファイルが開けないみたいです。 ・・・省略・・・ #--------------------------------# # 指定日のファイルにデータを追加 # #--------------------------------# ・・・省略・・・     #---- 追加 ----#     if($FORM{'comment'}){         if(!open(OUT,">>$filename")){   <===ココ             &error("file open error!");         }         print OUT "$FORM{'day'}<>$FORM{'comment'}\n";         close(OUT);     }

noname#14576
質問者

お礼

無事問題解決できました ありがとうございました

noname#191236
noname#191236
回答No.3

line 509 は、.dat の処理のようなのでやはりdat関係かと思うのですが・・・。 多分、datファイルのパーミッションは777では動かない場合が多いかと思います。 それなので、700等にして再度実行してみてください。 あと、間違いなく 2002_11.dat となっていますか? 2002_11.dat.txtなどとなっていませんか? アップロードした場所も、sch004.cgiと同じ場所ですか? Tripodについてよく知らないので少し調べてみましたら、 Tripodはパーミッション設定不要という事を見かけました。 777にできたという事は変更もできるのでしょうか・・・? これでも出来なければ、すみませんが私にはちょっと分かりません。(^^; ※いかなる場合においても責任は負えませんので、全ては自己責任でお願いします。

noname#14576
質問者

補足

指示通りできているか確認してから再度実行しましたが うまくいかないようです 拾ってきたサイトではサンプルとして動作していたので バグでは無いと思うんですが…

  • koboy0808
  • ベストアンサー率30% (562/1833)
回答No.2

 CGIをチェックするCGIが参考ページで入手 出来ますので、お試しを!エラーが出ても、書き込み 出来るなら、私なら、気にしませんけど???

参考URL:
http://appoh.execweb.cx/
noname#191236
noname#191236
回答No.1

まず、どのようなエラーが出るのでしょうか? 勝手な想像ですが、多分datファイルの作成ができないではないでしょうか? 確認の為、2002_11.dat (11月に書込むの場合)というファイルが存在してるか確認してください。 もし、なければ空の 2002_11.dat という名前のファイルを作成して、そこにアップロードしてみてください。 それで、その 2002_11.dat を適切なパーミッションに設定してから、書き込みできるか確認してみてください。 ※いかなる場合においても責任は負えませんので、全ては自己責任でお願いします。

noname#14576
質問者

お礼

GX71さん 状況説明が不十分なのに回答して頂いてありがとうございました

noname#14576
質問者

補足

エラーメッセージは 以下のエラーが発生しています。 Your script produced this error: Insecure dependency in open while running setgid at ./sch004.cgi line 509. でした それと2002_11.datをアップしましたがまだだめなようです パーミッションは777にしてみました

関連するQ&A