CGIだけどなんか質問ある Pert 5.01
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
02/03/03 12:49ID:673UxTI50375perlでgzipされたhtmlファイルの作成
02/03/14 20:06ID:gUGqkp2Cgzipで圧縮した、htmlファイルを作成する方法を教えてください。
0377nobodyさん
02/03/14 23:41ID:yfgde3s4ドキッ!!
ちょっとまだ良く理解できてないですが、なんかまずそう?!
そういう構成のシステムそのものに問題があると言うことですか?
0378nobodyさん
02/03/14 23:50ID:???例を挙げると、ブラウザから打ち込んだコマンドを実行し、結果を返すだけのCGIがある。
CGIはサーバサイドで動くので、CGIの実行権限の範囲でCGIの使用者は何でも出来ることになる。
(CGI設置者であったりnobodyであったり。)
そのCGIに認証が必要ないとすれば、誰でも使えるシェルが公開されているに等しい。
ファイアウォールでいくら外部からのアクセスを拒否したとしても、そんなCGIがあれば
簡単に外部からの侵入を許すことになる。
いくら対外的なセキュリティを強化しても、外部の人間の言いなりになる産業スパイが自社にいてはまったく意味がない。
みたいな。
0379nobodyさん
02/03/15 00:28ID:jooXMX1Oわかるようなわからないような。うう・・・。
認証と言うことは、たとえばパスワードのようなもので
ログインみたいなことをさせるとか、同時にそのCGIを使えるのは
一人のみに制限するとか(できるのかしら?(あせ))
CGIの持っている機能そのものは、当然コードに埋め込まれているものだけですが、
その存在だけで、第3者がサーバーに侵入できてしまうと理解して良いんですよね。
インターネット経由での遠隔操作でそういう制御をやってる人って
どうやって実現しているんだろう。
インターネットは使わないほうが良いって事なのかしら?
ふ〜、この世界って奥が深いのですね。どーしよ。
0380名無し ◆Rr5/ytdE
02/03/15 00:36ID:YznOuxlhこのBBSをhttp://netfirms.com/の
無料鯖に置くにはどうしたらいいですか?
cgi-binに画像ファイルが置けないのでこれでファイルをアップしても
保存できないのです。他の場合でもどう対処したらよいでしょうか?
お願いします。
0381名無し#
02/03/15 01:37ID:???0382nobodyさん
02/03/15 07:16ID:???ミミ彡ミミミ彡彡ミミミミ
,,彡彡彡ミミミ彡彡彡彡彡彡
ミミ彡彡゙゙゙゙゙""""""""ヾ彡彡彡
ミミ彡゙ ミミ彡彡
ミミ彡゙ _ _ ミミミ彡
ミミ彡 '´ ̄ヽ '´ ̄` ,|ミミ彡
ミミ彡  ゚̄ ̄' 〈 ゚̄ ̄ .|ミミ彡
彡| | |ミ彡
彡| ´-し`) /|ミ|ミ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ゞ| 、,! |ソ < そんなに急ぐなよ道は長い
ヽ '´ ̄ ̄ ̄`ノ / \________
,.|\、 ' /|、
 ̄ ̄| `\.`──'´/ | ̄ ̄`
\ ~\,,/~ /
\/▽\/
0383perlでgzipされたhtmlファイルの作成
02/03/15 11:26ID:2gjP1S/1gzipが/bin/gzipにあります。
CGIでページをgzip化して表示できるので、このデータをそのままHTMLに書き出せたらと思ったのですが。
0384nobodyさん
02/03/15 11:30ID:???cgi-binに画像が置けないのなら別のディレクトリに置けばいいだけの話。
初期設定で画像のおき場所をフルパスで指定すれば良し。
ex:$datafileurl = 'http;//www.2ch.net/imgdir/';
リンク先を見てないのでうまくいかないかも。
トリップ機能を搭載したいと思っています。
過去ログを見たけどわかりませんでした。
>>4-5にある「スクリプト改造工房」はdat逝きでした…
できれば、2ちゃんと同じトリップが使えたらいいなと思っています。
当方スキルは、一応Perlを初心者向けリファレンス本を読んでいる程度です。
トリップを搭載したいのは、プチ★ボード(petit.cgi)です。
どなたか、コレを実現された方、もしくは実現方法をご存じの方、
教えて下さい。よろしくお願いします。
KENT-WEBさんのサイト
ttp://www.kent-web.com/
プチ★ボード配布コーナー
ttp://www.kent-web.com/bbs/petit.html
0386nobodyさん
02/03/15 12:54ID:???書き込み処理のちょっと前くらいに入れておくべし。
あと、スレ違い。
http://pc.2ch.net/test/read.cgi/php/1012839651/
スレ違い申し訳ありませんでした。
ありがとうございました。
こんな感じに実装させて頂きました。
#トリップ機能
if ($in{'name'} =~/◆/){
$in{'name'} =~ s/◆/◇/g;
}
if ($in{'name'} =~/#/){
$in{'name'}=~ s/\x23(.+)$/ "◆".substr(crypt($1, substr($1, 1)), -8)/e;
}
0388nobodyさん
02/03/15 14:11ID:???騙されてるって・・・
↓こうしなさい。
$in{'name'} =~ s/◆/◇/g;
$in{'name'} =~ s/\x23(.+)$/ "◆".trip($1)/e;
sub trip {
my $key = shift;
my $salt = substr("${key}H.", 1, 2);
$salt =~ tr/\x00-\x20\x7b-\xff/./;
$salt =~ tr/\x3a-\x40\x5b-\x60/A-Ga-f/;
return substr(crypt($key, $salt), -8);
}
0389nobodyさん
02/03/15 15:11ID:???エ━━(゚Д゚lll;)━━ッ!?
騙されてたんですか?
petit.cgiじゃないんですけど、
一応動いてるみたいなんですけど…
http://www.pweb.ne.jp/~fpm2/wtalk/
(ほのぼの板用チャット)
あっ、でも元のキーに「~=」とかが含まれてると
動作しませんでした。
0394nobodyさん
02/03/15 15:31ID:???>何故わざわざ"\x23"?"#"じゃダメな理由でもあるの?
そのほうがかっこいいから。
それと>>387みたくtr演算子を使う時に#じゃ困る。
>>388ので設置してみました。m(_ _)m
#aa~=aa
見たいなトリップはやっぱり認識されないですね…
試しに、「#aa~=aa」でここに書き込んでみます。
むこうでは、◆4tC6xcI.になってしまいました。
それ以外のトリップは全て大丈夫でした!(´-`♪
0399nobodyさん
02/03/15 15:58ID:???「#aa~=aa」でも問題なく◆4tC6xcI.になったが・・・
基本的にどんな文字でもOKなはず。日本語でも、制御文字でも。
#$in{'name'} =~ s/\x23(.+)$/ "◆".trip($1)/e;
コメントアウトして、入力がおかしくないか確認したら?
0400399
02/03/15 16:00ID:???0401テスト ◆NAOKmK0E
02/03/15 16:04ID:???レスありがとうございます。◆AnfivKvE です。
試してみましたので報告致します。 m(_ _)m
コメントアウトしてテスト#c+~=y:Arという名前で入ってみました。
結果→テスト#c+~=y:Ar
元に戻してテスト#c+~=y:Arで入室
結果→テスト◆SLjREV3g
2ちゃんねるで、テスト#c+~=y:Arで発言
結果↑
トリップと名前は全てコピペしました。
0402388
02/03/15 16:50ID:???これでどうかな。
sub trip {
my $key = shift;
my $salt = substr("${key}H.", 1, 2);
$salt =~ tr/\x00-\x21\x23-\x2d\x7b-\xff/./;
$salt =~ tr/\x3a-\x40\x5b-\x60/A-Ga-f/;
return substr(crypt($key, $salt), -8);
}
0403テスト ◆NAOKmK0E
02/03/15 17:05ID:???トライしました!完璧でした!
テスト#c+~=y:Ar → テスト◆NAOKmK0E
ありがとうございます! ヽ(`Д´)ノ ウワァァン
コレから先に見る方が居るかもしれないので、
成功したヤツを書いておきます!
本当にありがとうございました!
ここからソース
書き込み処理直前、cookie発行後。
#トリップ機能
$in{'name'} =~ s/◆/◇/g;
$in{'name'} =~ s/\x23(.+)$/ "◆".trip($1)/e;
ここから、トリップ作成サブルーチン
#----------------#
# トリップ生成 #
#----------------#
sub trip {
my $key = shift;
my $salt = substr("${key}H.", 1, 2);
$salt =~ tr/\x00-\x21\x23-\x2d\x7b-\xff/./;
$salt =~ tr/\x3a-\x40\x5b-\x60/A-Ga-f/;
return substr(crypt($key, $salt), -8);
}
いやいやいやいや
お陰様で設置できました
本当にありがとうございました
m(_ _)m
マジですか・・・?ちょっと試してみます。
0408388
02/03/15 18:45ID:???本格的に鬱だ・・・
?? ̄∇ ̄??
0411388
02/03/15 18:46ID:???0412388
02/03/15 19:00ID:???sub trip {
my $key = shift;
$key =~ s/"/"/g;
$key =~ s/</</g;
$key =~ s/>/>/g;
my $salt = substr("${key}H.", 1, 2);
$salt =~ tr/\x00-\x2d\x7b-\xff/./;
$salt =~ tr/\x3a-\x40\x5b-\x60/A-Ga-f/;
return substr(crypt($key, $salt), -8);
}
早速やってみます!
0414386
02/03/15 19:12ID:???>>388ごめん、騙したつもりはなかったんだけど。
確かにsubstrの使い方とかよく覚えてなかったし、テストもしてないけどさ。
ところで、s/&/&/g; もしたほうがいいんでは?
#"aaaa
2ちゃんねる→◆TVWmrXp6
Perlスクリプト→◆TVWmrXp6
#<aaaa
2ちゃんねる→◆DdwRIQ4Q
Perlスクリプト→◆DdwRIQ4Q
#>aaaa
2ちゃんねる→◆nxB5V1NE
Perlスクリプト→◆nxB5V1NE
今度こそ完璧です!できました!
他の普通のトリップも全部変換できました!
ありがとうございました!
他に見る方が居るかもしれないので、>>413に
ソースを書いておきます!
お世話になりました。m(_ _)m
書き込み処理直前、クッキー発行後
<ここから>
#トリップ機能
$in{'name'} =~ s/◆/◇/g;
$in{'name'} =~ s/\x23(.+)$/ "◆".trip($1)/e;
</ここまで>
#----------------#
# トリップ生成 #
#----------------#
sub trip {
my $key = shift;
$key =~ s/"/"/g;
$key =~ s/</</g;
$key =~ s/>/>/g;
$key =~ s/&/&/g;
my $salt = substr("${key}H.", 1, 2);
$salt =~ tr/\x00-\x2d\x7b-\xff/./;
$salt =~ tr/\x3a-\x40\x5b-\x60/A-Ga-f/;
return substr(crypt($key, $salt), -8);
}
#&aaaa
$key =~ s/&/&/g;
2ちゃんねる → ◆QQXkbDVs
Perlスクリプト → ◆JwJPq806
#$key =~ s/&/&/g;
2ちゃんねる → ◆QQXkbDVs
Perlスクリプト → ◆QQXkbDVs
>>417
つーかここにちゃんと表示されてないですねw
いやぁ… (´ー`ゞ
というわけで書き直します。
トリップ生成ルーチン
書き込み処理直前、クッキー発行後
<ここから>
#トリップ機能
$in{'name'} =~ s/◆/◇/g;
$in{'name'} =~ s/\x23(.+)$/ "◆".trip($1)/e;
</ここまで>
#----------------#
# トリップ生成 #
#----------------#
sub trip {
my $key = shift;
$key =~ s/"/"/g;
$key =~ s/</</g;
$key =~ s/>/>/g;
my $salt = substr("${key}H.", 1, 2);
$salt =~ tr/\x00-\x2d\x7b-\xff/./;
$salt =~ tr/\x3a-\x40\x5b-\x60/A-Ga-f/;
return substr(crypt($key, $salt), -8);
}
YY-BBSにこのトリップ機能をつけるにはどこにこのコードを
付け足せばいいんでしょうか?
### --- ログ書き込み処理 --- ###
sub regist {
|
略
|
#トリップ機能
$in{'name'} =~ s/◆/◇/g;
$in{'name'} =~ s/\x23(.+)$/ "◆".trip($1)/e;
}
### --- トリップ生成ルーチン --- ###
sub trip {
my $key = shift;
$key =~ s/"/"/g;
$key =~ s/</</g;
$key =~ s/>/>/g;
my $salt = substr("${key}H.", 1, 2);
$salt =~ tr/\x00-\x2d\x7b-\xff/./;
$salt =~ tr/\x3a-\x40\x5b-\x60/A-Ga-f/;
return substr(crypt($key, $salt), -8);
}
こんな感じにしてみたんですが書き込みのときに名前を「名無しさん#aaaa」
でやったんですがそのまま「名無しさん#aaaa」と表示されてしまいます・・
どこを直せばいいんでしょうか?
機能、スレ違いを指摘されたので続きは
スクリプト改造工房
http://pc.2ch.net/test/read.cgi/php/1012839651/
でやりましょうか♪
俺に出来ることなら手伝いますんで。
ありがとございます。では移動します。
0426nobodyさん
02/03/16 19:29ID:SKQhp2KRCGIのスクリプトを書くにあたって、
処理ごとにファイルを分けるのと、ひとつのファイルにすべての
処理をさせてしまうのとどちらがどう違うのでしょうか。
それぞれ利点欠点などはあるのですか?
0428QQQQQQQ
02/03/16 22:36ID:???このHTMLファイルはログの増加にあたり移動したりするので、
ブラウザのアドレスバーにこのURLを表示したくありません。
かといって全行perlに読まして書くのは処理が重くていやなのです。
location: を使ってみましたがURLがかわってしまいました。
どうかご教授ください。
0429親切な人
02/03/16 22:40ID:???ヤフーオークションで、凄い人気商品、発見!!!
「高性能ビデオスタビライザー」↓
http://user.auctions.yahoo.co.jp/jp/user/NEO_UURONNTYA
ヤフーオークション内では、現在、このオークション
の話題で、持ちきりです。
0432nobodyさん
02/03/17 00:22ID:???もしかしてこれで処理が重くなるほどすごいhtmlなの?
open F, "go_this_page.html";
while (<F>){ print; }
close F;
0433QQQQQQQ
02/03/17 00:41ID:???>>430
シンボリックリンクはHTMLファイルにするのでしょうか。理解できませんでした?
>>431
フレームは確かにできそうですね。ありがとうございます。でもフレーム未使用の方法はないのかに。
>>432
別に1件1件はたいして重くないですが、それでもHTMLに飛ばすよりはだいぶ重いように思います。
0434nobodyさん
02/03/17 01:31ID:4IUULEh/ルート直下の/cgi-binでCGIを動かそうと思っているんですが、
その際CGI動作確認とかFTP転送とかするためにCGIのアカ
ウントを作成するのがいいかなあと思うんですが、みなさんは
どうしていますか?
0435nobodyさん
02/03/17 07:57ID:???板違い
http://pc.2ch.net/linux/
0436nobodyさん
02/03/17 07:58ID:???http://pc.2ch.net/test/read.cgi/linux/1014651391/
0437nobodyさん
02/03/17 09:32ID:???向こういってみます
0438nobodyさん
02/03/17 16:02ID:???1.サーバの負荷をおさえつつ送信するなんかイイアイデア。
2.途中で逝っちゃった場合の状況の知り方と対処。
なんつーのが知りたいっす。Webで検索かけまくったけどコレって
いうのがナイと思う。
0439nobodyさん
02/03/17 16:32ID:???0442nobodyさん
02/03/17 17:18ID:???物は言いようって何かひかかるが、ようはスパムかなんかのCGI作ろう
とかしてんだろって言いたいのかな? そんな事はしてないが・・・。
ま、それはそれとして、例えば 5 件 send したらちょっと休むとか、キュー
を介すのとそうじゃないのでどうなのかとか、そういう事が聞きたいんだけ
ど、CGIの範疇じゃない? 今のところ、ループでぐるぐる回して送信してい
るだけなんでサーバの負荷の大きいのかなあと思った次第。
板違いならスマソ。。。
0443nobodyさん
02/03/17 20:50ID:???my $salt = substr("${key}H.", 1, 2);
ってどういう意味(ここ ${key}H.)
あと
$salt =~ tr/\x00-\x2d\x7b-\xff/./;
$salt =~ tr/\x3a-\x40\x5b-\x60/A-Ga-f/;
って何を何に?
0444nobodyさん
02/03/17 20:52ID:???0445nobodyさん
02/03/17 21:12ID:???perldoc -f tr
perldoc perlop
>444
perldoc Benchmark
0446nobodyさん
02/03/18 02:50ID:e/HSAhdE組み込むとエラーが出ます。SSIのincludeでアクセスカウンタcgiを呼び出して使って
たんですが。通常のページとフレームを使ったページ内に入れるのとでは何が違うの
でしょうか?
0447nobodyさん
02/03/18 03:07ID:???答え飽きました≒過去ログ読めやがれ
0449446
02/03/18 03:23ID:e/HSAhdEフレーム アクセスカウンタで2ch発言検索はしたけどHITしなかったんだよ〜
0450nobodyさん
02/03/18 08:26ID:???____ l
\ ―┼―ヽ \
| ――――― / | ゝ
_/ / |
/ _」
l / || ヽ ―┼― l
ヽ ┌―┐ ―┼― ┌―――┐ / ̄ ̄ ̄7| | ―― ―┴― _|__/
_ .| ┌┤ ――┼―― | | | ― 「 ̄ ̄ ̄ ̄| / | / ̄\
| | ̄ ̄ ̄| / | | / ― | | / |/ |
人| □ 」 / \ | | / ┌‐┐ | | | /| /
ノ ヽ―――  ̄ ̄ ̄ ̄ヽ ├―――┤ / ├‐┤ ノ |_」 ヽ/ ヽ _/
_____ ────
| __ ┌───┐
| ┌┐ ─┼ ├───┘
./ └┘ | / ─┼─
/ l / ヽ | ノ /─┐
/ ── 」 / 」
| || /
| ̄ ̄ ̄ ̄ ̄| ||____|_ /
| | /| / ̄ ̄ ̄ ̄| ̄ ̄
| / | |
/ / .| |
/ _| /
 ̄ ̄ ̄ ___/
0451nobodyさん
02/03/18 08:50ID:???0452nobodyさん
02/03/18 08:53ID:???0454nobodyさん
02/03/18 09:09ID:???0455nobodyさん
02/03/18 22:00ID:???0457nobodyさん
02/03/19 00:32ID:???もともとperlとPHPが似ているので、
使用状況に応じて簡単に変換できたらよさそうじゃんか。
0459nobodyさん
02/03/19 03:54ID:rsFIfwz6ローカルでは動作するのにサーバーに転送すると必ずInternal Server Errorになります。
エラーログを見てみるとPremature end of script headers:だけ書かれていました。
またエラー箇所を探したのですが、起動のたびにエラーになるlineが移動して1箇所には定まりません。
これはメモリ不足によるプロセスの強制終了の可能性と考えたほうがいいのでしょうか?
よろしくお願いしたします。
0460nobodyさん
02/03/19 04:39ID:???0461nobodyさん
02/03/19 05:19ID:???headerが出力されてません。ってエラーなわけで、
ローカルでは動いてるということは…
スクリプトで使ってるモジュールがサーバには無い、とか予想してみる。
0463じゃ代弁しとくよ
02/03/19 09:48ID:???0464nobodyさん
02/03/19 10:20ID:???でも正直なところはいいね。
ガキ流れは、
「php使えばいいだろ」のあたりからなってしまいました。オレもガキじゃん。
0465459
02/03/19 12:54ID:mcTfQ2cdありがとうございます。
特にモジュールは使用していません。ごく基本的な関数のみで作ってあります。
何より不可思議なのは、どこの時点でエラーになるのかがCGIを動かす度に
変わるということです。例えば...
ループA{
ループB{
サブルーチン
}
}
となっていて、
1回目はループAの47回目、ループBの71回目ではエラーがすでに発生
2回目はループAの47回目、ループBの70回目ではエラーがすでに発生
3回目はループAを37回目、ループBを69回目ではエラーはなし
4回目はループAを37回目、ループBを70回目ではエラーはなし
5回目はループAを37回目、ループBを71回目ではエラーはなし
という具合に、いつまで経ってもエラー箇所が一箇所に定まらないのです。
ただループAが37回目のどこかで発生するのは確かなんですけど。
0466nobodyさん
02/03/19 13:08ID:???ソース見せれ。
0467
02/03/19 14:31ID:ZgA62M2Hクッキー読むスクリプトはみつかるのですが
保存するところがみつかりません、もしかしてCGIのほうでやってるんでしょうか?
0468nobodyさん
02/03/19 15:02ID:???0470459
02/03/19 19:30ID:LM+0/bSKサーバー会社へ出していた同様の質問の回答がやっと帰ってきました。
------------------------------------------------------------
確認いたしましたところ、お客様がご利用のCGIは XXX共有サーバーの
CPU Time の制限にかかり、サーバーエラーとなっていました。
XXX共有サーバー は、共用のサーバーですので、高負荷状態に
陥ることを防ぐためにこちらの制限を行っております。
-------------------------------------------------------
ということでした。すみません、解決しました。
またよろしくお願いします!
0471123
02/03/19 21:45ID:???0472nobodyさん
02/03/19 21:49ID:???俺は「使っているのを見て知った」んで、どうやってLocationを知ったのか謎だ。
後学のために教えてくれ。
ところでGoogleって知ってるか?
0473nobodyさん
02/03/19 22:04ID:???0474nobodyさん
02/03/20 23:54ID:Hs1uL44x付けた時のようにページを転送することは可能ですか?
■ このスレッドは過去ログ倉庫に格納されています