- ベストアンサー
cgiでエラーがでてしまします
こんにちは今度初めてホームページを作っている者です そのなかでスケジュール表をcgiで動かそうと思いフリーの物を探して設置したのですがどうもうまく動きません 具体的には 1.閲覧はできる 2.管理者用の設定画面も問題はない 3.新規投稿をするとエラーがでる 以上です http://www.ace-cgi.jp/cgi/sch/004/index.html ↑cgi入手先 おわかりの方いらっしゃいましたら解決策を教えてください よろしくお願いします
- みんなの回答 (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."; } を追加してみてください。
その他の回答 (6)
TripodのCGIはTaint モードというので動作しているようで、 なにか危険な部分があるとエラーで動かないようです・・・。 so_blueさんが同様の事があったようなので、 実際に経験された方の回答のほうが参考になりますね。 お役に立てずにすみませんでした。(^^; それでは失礼します。m(_ _)m
お礼
いえいえ 貴重な時間を割いてくださってありがとうございました
- so_blue
- ベストアンサー率48% (50/104)
if(!open(OUT,">>$filename")){ &error("file open error!"); } の部分を open(OUT,">>$filename") or &error("file open error!"); にしてみてはどうでしょう。 # 単に言い回しを変えてみただけです # 改変は個人責任で行って下さいね :-) # 改変前のスクリプトのバックアップも忘れずに 原因は不明なのですが、自分も if(!open~ だと何故かエラーになったケースがありました。 しかし、改造については許可されているのでしょうかね?
お礼
無事問題解決できました ありがとうございました
補足
上記の3行をすべて書き換えということですよね? やはり Your script produced this error: Insecure dependency in open while running setgid at ./sch004.cgi line 509 となってしまいます 改造については各自行って良いそうです
- toshihiko_ooishi
- ベストアンサー率33% (175/520)
私は、Tripodに使っていないHPスペースを持っているので、早速調べてみました。 結果、sch004.cgiの中で、下のところでエラーが発生していて、何らかの理由で、ファイルが開けないみたいです。 ・・・省略・・・ #--------------------------------# # 指定日のファイルにデータを追加 # #--------------------------------# ・・・省略・・・ #---- 追加 ----# if($FORM{'comment'}){ if(!open(OUT,">>$filename")){ <===ココ &error("file open error!"); } print OUT "$FORM{'day'}<>$FORM{'comment'}\n"; close(OUT); }
お礼
無事問題解決できました ありがとうございました
line 509 は、.dat の処理のようなのでやはりdat関係かと思うのですが・・・。 多分、datファイルのパーミッションは777では動かない場合が多いかと思います。 それなので、700等にして再度実行してみてください。 あと、間違いなく 2002_11.dat となっていますか? 2002_11.dat.txtなどとなっていませんか? アップロードした場所も、sch004.cgiと同じ場所ですか? Tripodについてよく知らないので少し調べてみましたら、 Tripodはパーミッション設定不要という事を見かけました。 777にできたという事は変更もできるのでしょうか・・・? これでも出来なければ、すみませんが私にはちょっと分かりません。(^^; ※いかなる場合においても責任は負えませんので、全ては自己責任でお願いします。
補足
指示通りできているか確認してから再度実行しましたが うまくいかないようです 拾ってきたサイトではサンプルとして動作していたので バグでは無いと思うんですが…
- koboy0808
- ベストアンサー率30% (562/1833)
CGIをチェックするCGIが参考ページで入手 出来ますので、お試しを!エラーが出ても、書き込み 出来るなら、私なら、気にしませんけど???
- 参考URL:
- http://appoh.execweb.cx/
まず、どのようなエラーが出るのでしょうか? 勝手な想像ですが、多分datファイルの作成ができないではないでしょうか? 確認の為、2002_11.dat (11月に書込むの場合)というファイルが存在してるか確認してください。 もし、なければ空の 2002_11.dat という名前のファイルを作成して、そこにアップロードしてみてください。 それで、その 2002_11.dat を適切なパーミッションに設定してから、書き込みできるか確認してみてください。 ※いかなる場合においても責任は負えませんので、全ては自己責任でお願いします。
お礼
GX71さん 状況説明が不十分なのに回答して頂いてありがとうございました
補足
エラーメッセージは 以下のエラーが発生しています。 Your script produced this error: Insecure dependency in open while running setgid at ./sch004.cgi line 509. でした それと2002_11.datをアップしましたがまだだめなようです パーミッションは777にしてみました
お礼
できました! 汚染検出で引っかかっていたようです 本当にありがとうございました