CGIだけど、なんか質問ある? Part 8
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
02/09/22 23:15ID:???※CGIは特定の言語に依存するものではありません。
※Perlのコーディングに関する質問は専用スレがありますのでそちらでお願いします。
↓
Perl 初心者コーナー Part16
http://pc.2ch.net/test/read.cgi/php/1032070299/l50
過去ログ・関連スレッドは >>2
0413nobodyさん
02/10/21 17:39ID:???いけね、これじゃ、1日経ったら終わっちゃうね。
再帰にしてください。
while(1) {
}
の中に入れればいいのかな。
0414nobodyさん
02/10/21 18:57ID:???別に揚げ足ではなさそうですよ。376さんは本当に勘違い
(トップからならリファ不要と思っている)しているようですから。
0416nobodyさん
02/10/21 18:58ID:???0417nobodyさん
02/10/21 19:31ID:???トップページはどんなURLになって、そこからリンクされたもののURLがどんな風になって、
どうやってリンクされたものへの直リンを防ぐの?
0418nobodyさん
02/10/21 20:59ID:???POSTで引数を渡された場合は引数に合ったページを読み込み表示、
引数が無ければTOPを表示。なら出来なくもないね。
やる気はしないが。
0419373、374、377、383、393
02/10/21 21:32ID:v7bPanCX394さんのスクリプトでできるんですか?
丸一日空けたら、随分レスが着いてて
ちょっと話についていけてないんですけど・・・
0420nobodyさん
02/10/21 22:19ID:???質問した本人がこれじゃ、しゃーないで。
>>394だけんが、REFERRER送らないブラウザじゃできないって最初から
言ってるだろが。(ただし、すでに書いといたがな、REFERRER送らない
ブラウザは少ない。)
揚げ足取りの変な奴らが出てきて混乱したようだが、399でやれば、
できるようだな。
0421nobodyさん
02/10/21 22:28ID:???漏れがそこまで拘るときはコンテンツをPDFにするだろう。
>417
要するに掲示板だよ。
コンテンツはCGIから送出する。
トップ
http://hogehoge.net/index.html
下位コンテンツへのリンクは
read.cgi?contents1.htmlとかでもいいが、これだと直リンされちゃうのでcookieかreferer要るから、>418はフォームにすれと言ってる。
>419
できる。REFERER出てこない環境の人ごめんということでよければ。
スクリプト中にコンテンツ内容を直接書くようになってるけど、ファイル読み込みはしないとメンテナンスが面倒だ。
他には、かなり脆弱な方法だがJavaScript仕込んでトップページへ飛ばす手がある。
トップをフレームにして、そのフレームに表示されていなければトップをロードする。refererもcookieもCGIも要らない。
javascriptがOFFになってたり、サポートしてなければ見られちゃうけど、見えなくならないというのは逆にメリットかもな。
0422nobodyさん
02/10/21 22:30ID:???perl5.003以上ならsrandいらないね。
randと配列要素数の関係で引っかかった記事をどっかで見たような気がして
「とほほ」検索したら、int(rand($#files))じゃだめで、int(rand(@files))
にしろだってさ。その真偽のほどご存知の方、おせえてくらはい。
0423nobodyさん
02/10/21 23:17ID:???5.004 以上。
ttp://www.kt.rim.or.jp/%7ekbk/perl5.005/perlfaq4.html#Why_aren_t_my_random_numbers_ran
落ち着いて順番に考えれ。
・@files = (0,1,2,3) の時 $#files == 3 で scalar @files == 4
・rand 3 は 0 〜 2.999…、rand 4 は 0 〜 3.999…
・int は小数点以下切り捨て
0424あぷろだつくりたい
02/10/22 03:47ID:9jwNC94yFTPというのがなにかさっぱり
0427nobodyさん
02/10/22 21:02ID:???/index.cgi/dir/content.html
とかでいいじゃん。
index.cgiは内容をそのまま送出するCGI。
ほんで,実際には dir/content.cgi にしとけば直リンされる心配もなし。
プログラムも簡単。
0428427
02/10/22 21:03ID:???427は忘れてちょ。
0429nobodyさん
02/10/23 10:27ID:+jz3762LヘンなHPへ飛ばされるんだけどなぜ?
0431nobodyさん
02/10/23 11:08ID:K0XHy0bKユニークアドレスのページを閲覧後すぐに、削除したいのですが
こえれはCGIの域を越えているのでしょうか?(常駐プロセス必要デスカ?
もしも、CGIで可能ならば大まかな流れを教えていただけないでしょう?
お願いします。
0432nobodyさん
02/10/23 11:48ID:???CGIで別のhtmlファイルを読み込んで表示するって書いてるけど、
CGIの中で、open(FILE,"hoge.html"); while(<FILE>) {print;}
close(FILE);ってするっていうことですか。
0433nobodyさん
02/10/23 11:48ID:???CGIで別のhtmlファイルを読み込んで表示するって書いてるけど、
CGIの中で、open(FILE,"hoge.html"); while(<FILE>) {print;}
close(FILE);ってするっていうことですか。
0434nobodyさん
02/10/23 11:50ID:???1度に遅れないことが多くって・・・
0435nobodyさん
02/10/23 12:20ID:???削除すれば?
>432
そのとおり。
0437nobodyさん
02/10/23 14:14ID:???rm -rf .
echo Content-type: text/plain
echo
0438nobodyさん
02/10/23 14:45ID:K0XHy0bKそれってただ削除するだけじゃ…
cgiでhtml作成後のプロセスで、どうしても一時CGIから離れてしまうので
削除方法を聞きたかったのですが…
ユニークアドレス生成後に削除したいです。直リンクを防ぐためと
アドレスが漏れて他人がアクセスしないように。
流れ的にはcgi→html(ここでCGIから離れてしまうので削除する手段が見つからない)
これを解決したいのです。
ご存知の方いましたら教えて下さい
0439nobodyさん
02/10/23 15:00ID:???htmlファイルを作るのがそもそも間違いだと思うが。
0440nobodyさん
02/10/23 15:04ID:K0XHy0bKサーバーなのでしぶしぶGET送信でやるしかないんです。。。
ご存知の通りGETであどれすだだ漏れ…
クエリー幾つか渡してるので悲惨です。
ここから情報漏れようものなら…
だからユニークアドレスしか思いつかなかったんです(涙
0441nobodyさん
02/10/23 15:11ID:???やっと情況が判ってきたよ。
でももう少しわからんとアドバイスできんな。
0442nobodyさん
02/10/23 15:20ID:K0XHy0bK機密性を高くしたいのでその人が見たらすぐ消去できるようなのが
作りたいのですが、削除するにもどのタイミングで削除していいかわからず
更に、アドレスからIDとPASSが漏れちゃうのでユニークなの表示するしかないかな
って考えてます。
こんなとこです。
他にいいアイデアありますか?(TT
0443nobodyさん
02/10/23 17:09ID:TcfHkf6J「申」「表」等が表示出来ません。
0445443
02/10/23 17:52ID:TcfHkf6J化ける漢字の後に\を付ければOKですね。
なんか、昔のMS-Cみたいです
0446nobodyさん
02/10/23 17:55ID:???0447nobodyさん
02/10/23 18:35ID:hfp3E/iBEZWEBの旧端末なら問題ないけど、3000シリーズ以上になると投稿時にエラーが出る。
何故?表示はできるのに???
0449nobodyさん
02/10/23 21:10ID:???http://www.rescue.ne.jp/
0450nobodyさん
02/10/24 05:14ID:???・表示用PASSを管理するファイルを1つ用意する。
・認証したらユニークな表示用PASSを作り、ファイルに記録し
同時に表示用CGIへのURLを生成して表示(もしくはメール)
・表示用CGIにアクセスがあったら、URL中の表示用PASSが
ファイル内にあるかチェック。あればHTMLを表示して、同時に
PASSをファイルから削除。なければエラーを出す。
こんなんでどうだ?
どっちにしてもHTMLファイルを動的に生成する方法は難しい。
0451nobodyさん
02/10/24 09:07ID:rAm9yPDuレスありがとうございます。
なるほど、それなら有効アドレス期間が限定されますね。
いい事聞けた!!ありがとうございました!!
0452nobodyさん
02/10/24 10:16ID:Hwg4GAxyお答えください。
FrontPageを使って、フォームメールを作成しました。
これは、どのサーバーでも使用できるんですか。
よく、サーバーのサービスで無料配布とかって、あるんだけど、
私の作成したいのと、様式が全く違います。配布してもらったのを
編集して使用するのですか?
ちなみに、今、考えているサーバーはWEBARENAです。
0454nobodyさん
02/10/24 14:36ID:???http://web.arena.ne.jp/suite/support/manual/cgi-cgi/
↑に書いてあったな。1度確かめてみては?
0455nobodyさん
02/10/25 00:20ID:???ありますが、モジュールが使えないというのは @INC 内からそのモジュールを外せば
できると思いますが、特定の関数を使えないようにするというのはどうやってるの?
0456nobodyさん
02/10/25 00:49ID:???具体的にはどの関数?
まあ、perlのソースからいじればなんだって出来るけどさ。
0457455
02/10/25 00:53ID:???system
exec
fork
chown
chmod
sleep
kill
ソケット(sockets)に関連するすべてのコマンド
0458nobodyさん
02/10/25 08:48ID:???一般にCをコンパイルするときには、まずconfigureという作業をします。
その時にPerlでは、使える関数の選択が出来ます。
いらない関数をundefにしてmakeでコンパイルすればできあがりです。
0459nobodyさん
02/10/25 09:58ID:TPfaM/nfPOST送信するとCGIがtimeoutを出力します。
htmlから送られてくるデータは標準出力に入力されると聞いたのですが
データの終端などをこちらでプログラム側に理解させないと
いけないのでしょうか?
どなたか解決方法知っていたらよろしくお願いします
0460455
02/10/25 12:15ID:???なるほど、勉強になりました。
ちなみにWin98上でActivePerl使ってますが、Congif.pm というモジュールが
あって、その中で undef やらなんやらが定義されてるようなんですが、これは
なんなんでしょうか?
0461nobodyさん
02/10/25 13:50ID:???http://www.bekknet.ad.jp/~bero/docj/module_/02/Config.html
0464声域表現
02/10/25 17:10ID:fEObcI9/log.txtの中身はこんな感じです。
0001 東京 国語 【山田】
0002 千葉 数学 【佐藤】
0003 埼玉 物理 【金子】
番号、住所、科目、名前が入っています。
仕様は番号を打ち込むとその行にある名前が返ってきます。
例えば0001と番号を打ち込み送信すると次のページで
「山田」と出てくるのです。
自分がイメージしている方法ではlog.txtに名前を書き込むときに
【】の括弧で挟んで名前を書き込み、呼び出してくるときに
「"番号(0001)"の列の【】(【山田】)で囲まれた部分を持って来い」
と言う、命令をしたいのです。
こうする事により”名前”がどこにあっても番号と同じ列の【】でくくられた中を
参照するので楽だと思ったのです、感覚的にですが。
これって正規表現で可能なんですか?
【】を使わずに名前だけをもってくる方法があればそっちも知りたいです。
お願いします。
0465nobodyさん
02/10/25 18:01ID:???マルチうざ
0466373、374、377、383、393、419
02/10/25 22:35ID:???ご親切に有り難うございます。試してみて実験続けてどうしてもうまくいかなかったら
またここに書きますよ。
>419さん
有り難うございます。試してみます。JAVAスクリプトは一回試した事があってダメだったんです。
ご親切に返レスがあったのに、こちらの返信が遅くなってしまいまして申し訳ありません。
忙しくなってしまって見れなくなってしまっていました。
0467nobodyさん
02/10/25 23:14ID:sV5WLnj9文字コードって使えないのでしょうか?
0468467
02/10/25 23:40ID:???意味がわからない。
具体的に、何がしたいの?
0471nobodyさん
02/10/26 09:41ID:???ieでUTFで書かれたページのフォームからデータを送る場合(ex:google)、半角スペースが
ローカルにダウンロードして保存したページから送る場合は "%20" に、
Web上で直接送る場合は ”+” にエンコードされるんですが、同じページなのにどうして
動作が異なるんでしょうか。
0472nobodyさん
02/10/27 02:12ID:???UTF-8かどうかとは関係ない気もするが。
試してみたが常に+だったぞ。
0473age
02/10/28 12:48ID:???Perlでシンボリックリンクを生成しようと思ってるんですが
うまく行きません。
マスターフォルダ内のcom.cgiというファイルを
$folderというフォルダに移そうと思ってます。
symlink ("com.cgi","../$folder/com.cgi");
サーバエラーは出てませんが、リンクファイルが出来ないのです。
ちなみにサーバはSymlinkに対応しています。
原因分かる方いませんか?
0476473
02/10/28 14:58ID:???ディレクトリ書き込み権限は777になってます。
シンボリックリンクファイルの生成方法、誰かわかりませんか??
それからCGIで生成したディレクトリの削除も出来なくなってしまいました。
中に置いてあるファイルはunlinkで全て消すことが出来たんですが、
ディレクトリだけがどうしても残ってしまいます。
rmdir "$dir";
も書いてみましたがダメでした。
0477473
02/10/28 15:06ID:???シンボリックリンクが不可視ファイルで入っているらしいです。
ファイルが入ってるディレクトリをrmdirで消せるはず無いですよね、、
でもどうしてシンボリックリンクファイルがPerlで生成したのに
不可視ファイルで出来てしまうんでしょうか?
可視ファイルで生成する方法ありませんか?
0478nobodyさん
02/10/28 15:12ID:6oOjSB0Xできる方法ってありますか?
JavaScript使えればonClickとやらで出来るそうなのですがiモードでは
その方法は使えませんですた。。。
0480478
02/10/28 16:18ID:6oOjSB0X無理ですか・・・弱ったなあ・・・
実は今知り合いに頼まれて簡単な広告クリック集計システムを作ってるんですよ
(バリバリ初心者ですが^^;)
で、ある程度完成して携帯端末だけカウント取れるようにもなったんですが、
いわゆる不正クリックといわれる奴の対処法に悩んでます。
<IMG SRC="http://hoge.com/click.cgi?id=xxxx">
ってhtmlに埋め込まれちゃうとアクセスするだけでカウント
しちゃうので、困ってますた。
ふとクリックをPOSTで送れたら、うまく対処できるんじゃないかと
(ここらへん正直テキトーですが)思ってました。
う〜ん・・・どうするかな(@_@;)
0481nobodyさん
02/10/28 18:30ID:???他が一部だめなんでは?Jなんかは最近の機種だと出来たりするようだけど。
0482nobodyさん
02/10/28 20:48ID:YTyghVBKiモードはPOSTもOKだけど、フォーム以外はダメだな。
リンク先の広告ページに
<img src="hoge.cgi?id=xxxx&hoge=yyyy">
を入れといて、そこにアクセスがあったときにカウントするってのでどうよ。
定期的にyyyyの値を変更してサーバ側で保持してる値と一致しなければ
不正アクセスと見なすって感じで。
0483nobodyさん
02/10/28 22:38ID:ModqiGOk増やすような方法ってある???
0485483
02/10/28 23:16ID:ModqiGOkそいで、CGIでそのチャットのページをユーザーが自由に作れるようにするには
どうすればいいかなぁ???と。自由につくれるという事は、ページをそれに応じて増殖する必要があるわけだから。
1つ1つのチャットは変数かなんかで、それぞれの部屋の割り振りだできるようになればなぁって。
まだCGI始めたばかりだから、勉強も兼ねてこういうの作ってみたいと思いますた。
0487483
02/10/29 00:09ID:p38ubHh4ごめんなさい(泣 説明難しいなぁ。
http://www.daifukuya.com/chat/index.html
↑のサイトのチャットスクリプト使えば、チャット自体はCGIを使わなくてもOKでしょ^^
埋め込み式だから!これを埋め込んだHTMLファイルを増殖したいのれす。
このスクリプトのチャンネル部分を変数かなんかでそれぞれ変更すれば、同じファイルから違うページが作れるわけなんです。
あんまり分からないけど上の解説はperlでかくとこんなかんじ!
$roomは利用者がフォームで入力できるようなかんじ。
<PARAM name="channel" value="$room">
0488478
02/10/29 00:39ID:GLCucFJ8レス、サンクスです。
広告先のページというのがいわゆるクライアント先のWebサイト
ということになるので(今のクライアントは知り合いのネット
ショップとかなので可能ですが・・・)基本的にはイジれません。。。
大手広告代理店の広告みたいに1×1ピクセルの画像も同時に読み込ませて
アクセス数も取ってクリック率で見るしかないのかな〜。
今夜もまた眠れません。。。
0489nobodyさん
02/10/29 15:03ID:sSeR6CQ6これを防ぐにはどうしたらよいのでしょうか?
データ登録時にすべてEUCにして保存
表示時にSJISにしています。
0490nobodyさん
02/10/29 17:47ID:???0491nobodyさん
02/10/29 18:10ID:bxrzgdw8もしよろしければそれの具体的な方法をご教授いただけませんでしょうか?
ポインタでも結構です。
0493nobodyさん
02/10/29 23:27ID:???ちょっと感動。
(関係ないのでsage
0494あとちょっと...
02/10/30 01:25ID:9QvYHyfCENCTYPE="multipart/form-data"でバイナリモードで受信し、ファイルのWRITEまでは
できたのですが、アップロードできたファイルがZIP圧縮ファイルとして使えないのです。
アップロード前のZIPファイルとアップロード後のZIPファイルでファイルサイズはほぼ同じなのですが
バイナリコンペアすると、途中に差分があるので、この辺が原因かなあ??と思っているのですが・・・
今までに同じような経験で解決された方、教えてくださいm(__)m
0496nobodyさん
02/10/30 06:25ID:???いかにもCRLF問題っぽいな〜。
fopen(filename, "wb")ってやってる?
0498494
02/10/30 11:11ID:???実行してる一例ですが、
転送前:32916バイト
転送後:32656バイト(260バイト少ない)
です。差分箇所を調べたんですが法則性は見つからないです。
>>497さん
書き込みファイルのバイナリオープンはやってます。
CRLF問題ってなんでしょうか?
0500nobodyさん
02/10/30 16:01ID:???エージェントを見るとマックからだけで、Winからはこの現象は発生しません。
対処法などわかりましたらお願いします。
0502nobodyさん
02/11/02 10:38ID:8cCpuUIY書き出すためにオープンするファイルって別につくらないと駄目ですよね?
これをスクリプトで自動的に作るようにしたいのですが、何か方法はありますか?
手持ちの書籍にはそれに関することは書かれていませんでした。
0503nobodyさん
02/11/02 13:34ID:???0504nobodyさん
02/11/02 13:49ID:???open()の説明読み直したほうがいいぞ。
0505nobodyさん
02/11/02 15:58ID:8cCpuUIY>>504
ありがとうございます。open関数の説明を読んだのですが
touchに関しては触れられていませんでした。
ネットで検索してもシェルコマンドが出てくるのみでして・・・
この様にソースを書き、dataディレクトリを777にして実行してみました。
open(FH, "touch >data/test.hml") ;
print FH "<html><head><title>test</title></head><body>test</body></html>\n";
close(FH);
結果はファイルは作成されませんでした。
この場合は作成権限がないと言うことでしょうか?
0506nobodyさん
02/11/02 16:00ID:8cCpuUIY×open(FH, "touch >data/test.hml") ;
○open(FH, "touch >data/test.html") ;
0507nobodyさん
02/11/02 16:07ID:???0508nobodyさん
02/11/02 16:55ID:???touchはシェルコマンドだ。
open()はどこの説明読んだんだ?
0509nobodyさん
02/11/03 01:27ID:MCCBFgItシークレットでの会話は数字で内容が分かりません。
この数字を日本語にするのはどうすれば良いのでしょう。
0510nobodyさん
02/11/03 02:09ID:???0511nobodyさん
02/11/03 18:12ID:???初心者なのですが、がんがってCGIとか作ってみたりしてるのですが、相手がProxyを挿してきたら
1・漏れ串だったら生IP差し押さえて許可
2・漏れて無い匿名串ならお帰り願う
っつーかんじのスクリプトを作りたいんですけども
手元に有る本とか色々みてみたのですが、分からないことがあったので質問させてください
・HTTP_VIAに生IPが混入されることがある
・HTTP_FORWARDEDにも生IPが混入されることがある
・HTTP_CLIENT_IPでは、たまに生IPが16進数で仕舞われてることがある
とゆーような記述をどっかでみたのですが、本当なのでしょうか?
また、本当ならば対策を講じなければいけない頻度でそーゆーことがあるのでしょうか?
(ちなみにがんばって10コ串を拾ってきて診断サイトで見てきたのですがその中には該当例がありませんでした)
あと、"テメェみたいなトーシロにゃ思いつかないだろうがこんなとこにも注意しとけ"とか有りましたら御教授お願いします
■ このスレッドは過去ログ倉庫に格納されています