トップページphp
990コメント300KB

CGIだけど、なんか質問ある? Part 10

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん03/03/26 22:47ID:44KxXtaW
CGIの運用に関する質問スレッドです。

※CGIは特定の言語に依存するものではありません。

※Perlのコーディングに関する質問は専用スレがありますのでそちらでお願いします。
  ↓
【Perl】初心者コーナー Part21
http://pc2.2ch.net/test/read.cgi/php/1047980851/l50

過去ログ・関連スレッドは >>2-5 あたりに
0607nobodyさん03/05/17 15:08ID:???
>>606
なんでそこの配布サイトで聞かないの?
0608nobodyさん03/05/17 16:30ID:oD7yzjk5
プログラミングのプの字も知らないようなヤツが箱庭やFFAなどのような
機能盛り沢山のゲームCGIを作るというのは無謀な事でしょうか。
0609nobodyさん03/05/17 16:33ID:???
うん。無謀。
0610nobodyさん03/05/17 16:34ID:???
>>608
とりあえず始めなきゃ始まらない。
0611nobodyさん03/05/17 16:35ID:???
>>608
始める前から出来るか出来ないか聞くような人はプログラミングに向いてない。
プログラマーは作ると決めたら出来ない予想図など浮かべない。(システム的に無理なのは別として)
0612動画直リン03/05/17 17:08ID:w1ZjXwV8
http://homepage.mac.com/hitomi18/
0613nobodyさん03/05/17 18:06ID:6eJYa860
フリーで配布されてる掲示板に自分のページのタイトルバーを表示させたいのですが
cgiのどの部分をいじればいいのでしょうか?
0614nobodyさん03/05/17 18:09ID:???
煽る気もなくなる。
0615nobodyさん03/05/17 21:02ID:???
>>613がイタい点
・全てのフリーで配布されているCGIに共通の改造方法があると考えている。
・HTMLの知識がないため、タイトルバーとやらの内容がどこで規定されているかわかっていない。
・CGIが、一般的にはHTMLを吐き出すプログラムのことだと言う知識がない。

まあ、要するに、カエレ!と。
0616nobodyさん03/05/17 21:03ID:???
>>615
んもぅ、答え教えちゃうなんて親切なんだから
0617nobodyさん03/05/17 21:16ID:???
>>615
>>581
0618nobodyさん03/05/18 03:18ID:???
cgiにおけるセキュリティ対策って 
どういうのを言うんですか?
0619nobodyさん03/05/18 03:43ID:???
>>618
全てのCGIを削除する
0620nobodyさん03/05/18 03:43ID:???
>>618
別にCGIに限った話ではないけれども。

クロスサイトスクリプティング攻撃
バッファオーバーフロー攻撃
共用サーバーで自作スクリプトを置くくらいなら、この二つに対策すべきだろう。

後はアクセスログを自前で取って、攻撃を受けた後の建て直しを早くするとかな。
これも共用サーバーでやる場合の話だが。
0621nobodyさん03/05/18 03:46ID:???
>>618
>>620 が言うとおり、何もしなければ穴もないと言う。

どっかの大学でサーバーのセキュリティを強化するとかしないとか話をした時に、
年だけ食ったネットとか知らない教授が叫んだとさ。
「そんなに大変なら外部から切り離せ!」
能力のない奴は最初からするなと言う教訓だな。
062261803/05/18 04:07ID:???
レスありがとー。
>>620
クロスサイトスクリプティング攻撃
バッファオーバーフロー攻撃
この2つについて激しく調べまくってきます!
>>621
無能なので、もっと勉強します(;つД`)
0623nobodyさん03/05/18 07:48ID:+ynHhkj6
皆さんに質問!
IEで自分のサイトでCGI中のdat(リンク集だが)を落とせなかった。
他に落とせる方法ってありますか?
最悪のことにFTPのパスは紛失しちゃいました…
プロバに問い合わせ中だが、この5日間返事来なし。
0624nobodyさん03/05/18 07:55ID:???
>>623
直リンすればダウンロードできるっしょ。
パーミッションとかで制限してれば駄目だが。
わかんなければパスが来るまで我慢しる。
0625nobodyさん03/05/18 08:36ID:???
scriptAliases(一般的にはcgi-binディレクトリの中)が効いてる場合も駄目だろうな。
0626nobodyさん03/05/18 08:51ID:???
バッファオーバーフロウって・・・・
0627nobodyさん03/05/18 11:52ID:Mb+lURve
フォームに書き込んだものをまとめて別のページに表示してくれるcgiってどこかにありますか?
ただし、書き込まれたものは非公開のやつがいいです。
0628nobodyさん03/05/18 11:54ID:???
>>627
こんなCGI探してますスレッド ver.9
http://pc2.2ch.net/test/read.cgi/php/1051456859/
0629nobodyさん03/05/18 12:51ID:???
CGIスクリプトを実行  ってどうやるんですか?

下らん質問ですみません。
0630nobodyさん03/05/18 13:29ID:???
>>629
質問が抽象的すぎて誰にもこたえられない。
何をさして言っているのか?
細かい状況を提示せよ。
063162903/05/18 13:51ID:???
>>630
認証パスワードを発行するために"***.cgi"の中にあった記述で、
「このCGIスクリプトを実行して得られた暗号文字列を〜」 の一部だったんですが・・・

これでわかりますか?
0632nobodyさん03/05/18 13:53ID:???
>631
どっかのサイトのフォームか?
063362903/05/18 13:57ID:???
>>632
どっかのサイトからフリーでもらったフォームです。
0634nobodyさん03/05/18 13:59ID:???
>>633
じゃあローカルなのね。
perl ?
063562903/05/18 14:11ID:???
そう。
0636nobodyさん03/05/18 14:18ID:???
>>629
使っているのがWindowsだと仮定して。

1.
ActivePerlがインストールされている状況で
DOSプロンプトを立ち上げ、
そのCGIがあるディレクトリに移動し、
perl ***.cgi
と入力する。

2.
FTPで鯖にアップし、
適切なパーミッションを設定し、
IEなどのブラウザでそのURLにアクセスする。

1.の方法はデバッグのための基本なので覚えるべし。
0637nobodyさん03/05/18 14:22ID:???
Perl 入れるならついでに Httpd も入れてしまおう。

標準DESでパスをハッシュ化するスクリプトかな。
パスを発行するってのがどういう意味か分からないけど。
0638nobodyさん03/05/18 15:12ID:pwwJTDq+
フォルダA
 フォルダB
 フォルダC
 路ttpdフォルダ
 湾erlフォルダ

↑という状態でフォルダAにあるCGIは動作するんですが、
フォルダBやCにあるCGIを動作させようとするとページを表示できませんとなります。
どこの設定が間違ってるんでしょうか?
0639nobodyさん03/05/18 15:14ID:???
>>638
環境も書かないような奴は厨房
064062903/05/18 15:18ID:???
ActivePerlがインストールされている状況で DOSプロンプトを立ち上げ、
そのCGIがあるディレクトリに移動し、 perl ***.cgi と入力する。

何もおきませんが。
0641nobodyさん03/05/18 15:24ID:???
>>640
パス通ってる?
だめならwebサーバ立てて直接実行してみては。
064262903/05/18 15:28ID:???
webサーバ立てて直接実行?
0643nobodyさん03/05/18 15:31ID:???
とりあえず perl と *.cgi をともに絶対パスで指定して見ては > prompt
0644nobodyさん03/05/18 15:49ID:???
パスが通ってなければ

>'perl' は、内部コマンドまたは外部コマンド、
>操作可能なプログラムまたはバッチ ファイルとして認識されていません。

こんな感じのエラーが出るはずだけど、何も起きないってことは、実行されてるけど
結果を返してないだけかも。
やっぱりサーバー経由で実行させるのがいいかもしれない。

(ここまで書いておいてなんだが、Windowsから入った人に「パスを通す」っていうのが
理解できるのだろうかといつも思うのだけど)
064562903/05/18 15:57ID:???
C:\〜>***.cgi って入力すると>>644のようなエラーがでるけど・・・

てか、認証パス出すだけなのにこんなに厄介なのか?
0646nobodyさん03/05/18 16:04ID:???
>645
もう面倒だから鯖にアップしちゃえ。
0647nobodyさん03/05/18 16:06ID:???
CGIからもJavaScriptからも同じクッキーに読み書きできますか?

CGIからクッキーを使うと、cgi-bin/って名前のクッキーができて、
JavaScriptからだと、〜@localhost/って名前のクッキーが出来る。
これを一つにして、JavaScriptから書き込んだデータをCGIから
CGIから書き込んだデータをJavaScriptから読み込みたいです。

JavaScriptはスレ違いですか、よろしくお願いします・・・
0648nobodyさん03/05/18 16:13ID:???
>>645
>何もおきませんが。
って言ったくせに。
0649nobodyさん03/05/18 16:18ID:???
「期待した結果が得られない=何も起きない」なんだよ。
0650nobodyさん03/05/18 16:20ID:???
>>649
だとしたら、典型的な厨房だな。
相手するのも馬鹿らしい。
0651nobodyさん03/05/18 16:23ID:???
>>645
厄介なのはお前のおめでたい脳味噌だ。履き違えるなこの野郎。

パスが通ってないならパスを通せ。
それか2の方法は試したのかよ。
寝言はできること全部試してからほざけ。
0652nobodyさん03/05/18 16:25ID:???
厨房なのは633あたりで運命的に明らかになってるんだから、
そう熱くならずにそれなり程度にアドバイスすればよいと思う
のだよ。
065362903/05/18 16:41ID:???
ディレクトリ変えてやったら***。cgiの中の文章が出てきたけど、
***.cgiの中身は何も変わらん。
0654nobodyさん03/05/18 16:43ID:???
>cgiの中の文章が出てきたけど
出てきたら駄目。

>cgiの中身は何も変わらん
あたりまえ。

何がしたかったんだか。あきらめて鯖上で動かしたほうがいいってばよ。
0655nobodyさん03/05/18 17:03ID:???
もう放置しろよ
スクリプト名とか配布先を出せば話が早いのにそれもしないやつだし
0656nobodyさん03/05/18 17:39ID:???
失礼します、Parlスレと迷ったのですが、こちらで・・

ttp://wondercatstudio.com/
のBBS NOTE(お絵描き掲示板)なんですが、質問させて下さい。

半角カナの文章投稿についてなんですけど、

 全角-ハンカク-全角

のような文字列の投稿だと問題ないのですが、

 ハンカク

のように、一行に半角文字のみの部分があると、そこだけ文字化けしてしまいます。


それでbbsnote.cgiの

 &jcode'convert($_,"sjis")if($jcode_pl=~/jcode/);

の部分を削除してみたんですが、文字化けは起こらなくなりました。
ただIEでしか確認していないため、他のブラウザによって起こる不具合が心配です。

他になにかいい解決法ってないでしょうか?
0657nobodyさん03/05/18 17:53ID:???
>>656
jcodeLE.plをjcode.plに入れ替えてみれ
requireの修正は忘れずに
0658nobodyさん03/05/18 17:54ID:???
>>656
その削除した部分は、ShiftJISへの文字コード変換をしているわけだけど
元の文字コードは自動判別してる。このとき、文字列が半角カナだけだと
自動判別に失敗してしまう。だから文字化けする。

投稿ページが必ずShiftJISで表示されて、なおかつフォームには必ずShiftJISで
入力されるという前提であれば、そのままでかまわないと思う。
たぶん他のブラウザでも大丈夫ではないかと。
0659nobodyさん03/05/18 18:19ID:???
>>657
jcode.plに差し替えただけでは、やはり文字化け投稿になってしまいました・・

>>658
IEでは投稿フォームの表示されるページは、
METAタグでcharset=Shift_JISとされているので大丈夫そうですね。


最近の、主に使用されているブラウザなら問題ないでしょうか。
しばらくこれで運用して、様子を見てみようと思います。
ありがとうございました。
0660nobodyさん03/05/19 15:36ID:9wygWKWp
WindowsXPにActiveperl5.8を入れてるんですけど
IISで動くCGIがanHttpdで動かなかったりその逆があったりするんですが
どう書き直せばIISで動く、anHttpdで動く、と言うようになるんですか?
0661nobodyさん03/05/19 16:53ID:???
どうしても納得できないんだけど、
運用上問題のないレベルで思い通りに動けば良い
という考え方でプログラムやスクリプトを組むのってどうなんですか?
仕様上、ブラウザがフォームから送信する文字コードに決まりはないのに
大多数がそうだからといって、文字コード変換を無くしてしまうというのは
アリなんですか?
文字コード変換処理ってそんなに重かったりするんでしょうか?
0662nobodyさん03/05/19 18:03ID:???
>>661
運用上問題のないレベルで重い通りに動けば良いと思います。
0663nobodyさん03/05/19 18:21ID:???
俺も運用上問題なければいいと思うぞ。

とは言え、他サイト様に迷惑かけるようだと話は別だが。
0664nobodyさん03/05/19 20:09ID:???
>>661
締め切りとかの関係でどうしてもと言う場合もある。
プログラマーの個人的な美意識とか職人意識として、
その主張はとてもよく理解できるが、
自分一人でやってるわけではない場合には、涙を飲む必要もたまにはあるだろう。
0665nobodyさん03/05/19 23:44ID:???
まあ、そういう風に納得できるやつらが
航空機をニアミスさせたり銀行のATM止めたりするんだろうね。納得。
0666nobodyさん03/05/20 00:02ID:???
>665
それは運用上問題が出てるだろ。
「運用上問題のないレベル」が前提の話で何を言ってるんだ。
0667nobodyさん03/05/20 07:10ID:???
>>665
君がそう思うなら、そうかもしれないね。
0668nobodyさん03/05/20 08:03ID:???
>665
航空機は違う、ATMはそうかもしんない、>666に対してはその指摘は妥当する。
車社会で交通事故死亡者が1万人/yくらいいても運用しなきゃいけない、と例えれば納得?

>667
君がそう思うなら、そうかもしれないね。
0669nobodyさん03/05/20 08:21ID:???
>>668
マネすんなよ
0670nobodyさん03/05/20 09:44ID:???
>「運用上問題のないレベル」が前提の話で何を言ってるんだ。

だったら最初から質問にもならないはずなのに。
何らかのかたちで問題が浮上することを頭の片隅で予想できてしまっている
ということではないの?
そういう状態にOKを出すというのは、とても問題でしょ。
ということが言いたいだけ。
0671nobodyさん03/05/20 10:09ID:???
まあ、いいじゃん。問題が出たら直せば
0672nobodyさん03/05/20 10:47ID:???
経営者や営業には、プログラマが持つような職人意識はないと知れ。
そんな連中は、>>671 のようなことを考えてる。
しかも、直すのは自分ではない。だからこそそんな無責任なことが言える。

納期とかなんとかは、本来プログラマたちがストライキを起こしてでも確保すべき資源なんだ。
うまく言いくるめられてるプログラマたちが多すぎ。
0673nobodyさん03/05/20 11:20ID:???
基本的にプログラマはマゾです。
0674nobodyさん03/05/20 13:41ID:???
>672
経営者や営業ほど問題を嫌がると思うけどな。
問題が起きた時、プログラマはプログラムを直せばいいだけだが、
経営者や営業は顧客の信用回復に奔走させられる。
信用を得るのには1年かかるが、失うのは1日で足りる。

まぁ、そのリスクと納期を天秤にかけた時どっちをとるかはその会社次第だろうが。
0675nobodyさん03/05/20 13:49ID:???
妙にスレタイと合致している話題ですね。
067665603/05/20 14:39ID:???
もちろん完璧なプログラムを組むのが理想なんでしょうけど、
私の場合、配布されているスクリプトではお客さんの性質もあり、
半角文字化けが多発するのは運用上の大問題なわけです。。

ここで長々とスクリプトをどう改造すればよいかと聞くのも何ですし、
未知の不具合には目をつぶり、お手軽な方法を取ってしまいました。

でも2ちゃん掲示板等ではしっかりと半角が文字化けせずに投稿できるので、
スクリプトを工夫すればなんとかなるであろうことは、素人の私にも分かります。

これで良しとはせず、もう少し調べてみようと思います。


スレ汚しスマソ
0677nobodyさん03/05/20 19:43ID:???
>>670 いいこというねえ。
0678nobodyさん 03/05/20 21:54ID:???
UTF-8が使えるんだったら、eucなりsjisなりの文字列を変換しちまえば
絶対文字化けしないけどな・・・
0679nobodyさん03/05/21 04:10ID:???
>678
変換する時にどっちなのか判断間違えて文字化けするんだっつーの。
0680nobodyさん03/05/21 06:42ID:???
<form action="cgi" method="post">
 :
<input type="hidden" name="jcode" value="あ">
 :
</form>

 ↓

%form;
read(STDIN, $_, $ENV{'CONTENT_LENGTH'});
foreach (split(/&/)) {
my ($name, $value) = split(/=/);
$value =~ s/%([a-fA-F0-9]{2})/chr(hex($1))/eg;
$form{$name} = $value;
}
if ($form{'jcode'} =~ /\x82\xa0/) {print "S-JISだよ。jcode.pl使わないよ"}
if ($form{'jcode'} =~ /\xa4\xa2/) {print "EUCだよ。jcode.pl使うよ"}
0681nobodyさん03/05/21 09:57ID:???
SJISのいわゆる半角カナだけの文字列は
EUCの文字列と判別不可能なの。
0682nobodyさん03/05/21 13:41ID:???
100%化けてはダメという条件であれば100%化けない方法を考えなきゃいけないと
思うし。技術的に95%までしか無理なんだったら、そう営業に伝えて95%であることを
客に飲んでもらわなきゃいかんと思う。
それを自分の技量を棚に上げて、「運用上問題ない」とか判断して注文を
無視しているいる所にむかついてた。
0683nobodyさん03/05/21 15:24ID:???
>680
過去に、form内の要素一つずつ
別の文字コードで送ってくるブラウザがあったのでそれでもあてにならん。
0684nobodyさん03/05/21 16:18ID:???
2ちゃんはjcode.pl使ってないの?
0685nobodyさん03/05/21 21:05ID:???
>684
2chはPerlじゃありませんから。
0686nobodyさん03/05/21 23:39ID:???
質問。Locationを使って別のページに飛ばしたいんだが、
飛ぶときと飛ばないときがある。なんで?そんなことってあるの?
調べたところ一部のサーバーではLocation禁止というところも
あるみたいだが、うちは飛ぶ。

でも飛ばないときもある… 
0687nobodyさん03/05/21 23:49ID:???
>>686
広告付きの無料スペースだからとか
0688nobodyさん03/05/21 23:52ID:???
最近はbbs.cgiもCで書き直したの?
0689nobodyさん03/05/22 00:00ID:???
>>687
なんでわかったの??
広告付きの無料スペースだとそういうことがあるんでつか??
0690nobodyさん03/05/22 01:01ID:???
>>689
鯖によっては広告がLocationヘッダの邪魔をする場合があるな。
metaに変えるか、htaccessでLayoutIgnoreURI *.cgiやってみるとか。
0691山崎渉03/05/22 01:55ID:???
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
0692nobodyさん03/05/22 19:44ID:MWXX6xXG
アクセスカウンターについて質問させてください。

アクセスがなくても数分ごとにカウンターの数が増えたり
1回アクセスがあるとランダムで1または1以上カウンターの数が増えるような
胡散臭いアクセスカウンターは作れるでしょうか?
どなたかご教授ください。
0693nobodyさん03/05/22 19:51ID:???
>>692
はい、作れます。
0694nobodyさん03/05/22 20:13ID:MWXX6xXG
>>693さん
ええと、それはごく普通のカウンターのCGIを少し改造すれば可能な事なんでしょうか。
出来ればその方法を少し具体的に教えていただけるとありがたいのですが。
0695nobodyさん03/05/22 20:44ID:???
>>694
以下の二つの点で頭が悪すぎです。
1.無駄に訪問者を多くみせかけようとする
2.その程度、人に聞くより自分で考えた方が早い
GWは終わりましたよ?
0696nobodyさん03/05/22 20:45ID:???
>>694
まず、
> アクセスがなくても数分ごとにカウンターの数が増えたり
こんな事はしなくていい。
アクセスがないときにカウンタを回して誰が見るの?

> 1回アクセスがあるとランダムで1または1以上カウンターの数が増える
1からあなたが望む数までの数字をランダムで発生させるルーチンを作る。
アクセスがあったら、今までのアクセス数に、発生させた数字を加えて新たなアクセス数として表示する。
0697nobodyさん03/05/22 21:23ID:4XPxMPwJ
http://life.fam.cx/
0698nobodyさん03/05/22 21:48ID:???
>>695-696さん
694です。
どうもお手数かけました。ありがとうございます。
0699nobodyさん03/05/23 07:30ID:xpCjHE6k
掲示板などで書き込みでどうやったら速く負荷がかかりにくいんでしょうか?
一般的に、書き込む場合
ログを読み込む>内容を変数に入れ>内容の入った変数+書き込む内容>ログに書き込む
ような処理をして効率悪く思います。この他にはどういったやり方がありますか?
0700nobodyさん03/05/23 08:26ID:???
>>699
そういうことは、他の人の掲示板をDLしてきて、
どんな処理してるのかソースを読みましょう。
0701nobodyさん03/05/23 08:27ID:???
>>699
追記モードで書き込めば、読み込みしなくていいぶん負荷は減るかも。
でも普通は書き込みより読み込みのほうが圧倒的に処理回数が多いわけだから
2ちゃんぐらいの規模でもない限り、あんまり効果は期待できない感じがする。
0702nobodyさん03/05/23 08:30ID:???
>>699
えっ!毎回、ログも書き込むのか?
070369903/05/23 09:41ID:J32UtBFo
これでも一応プログラムで飯食べてる者ですが、
なにぶんパールは初心者なもので知ったかでBBS作ってみたのです。
作ったBBSは半年以上触っていませんが、久しぶりに触ってみようかなと・・

>>700
KENTさんのBBS見ても何が悪いのかさっぱりなんです。あれの何処が悪いの?
0704nobodyさん03/05/23 10:29ID:???
>703
最初は Kurl で勉強してから perl に移行する。
これ常識。
0705nobodyさん03/05/23 10:40ID:???
>>703
何処が悪いって、何処か悪いの?
どれだけ負荷を与えない処理をするか・・・
それは、ログの管理の仕方によっても違ってくるし、
ログの出力の仕方によっても変わってくる。

とにかく、基本的には・・・
いかにファイルからの入出力のデータ量を減らすか。
BBSはこれが一番の課題だと思う。
もちろん、特殊な出力の仕方とかしてたら、
他にも課題はあるだろうけど。
0706nobodyさん03/05/23 11:41ID:aeupPdc0
ttp://sd-7.net/cgi-bin/alpha2/wforum.cgi?mode=allread&no=9195&page=10
■ このスレッドは過去ログ倉庫に格納されています