トップページ⇒php
1001コメント344KB

CGI: Common Gateway Interface part 11

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

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

Perlのコーディングに関する質問は、専用スレでお願いします:
[Perl 初心者コーナー Part24]
http://pc2.2ch.net/test/read.cgi/php/1054992610/

CGIとPerlの区別がわからない、という人はとりあえずこちらへ:
[WebProg 初心者の質問 Part3]
http://pc2.2ch.net/test/read.cgi/php/1045091733/

過去ログ・関連スレッドは >>2-5 あたりに
0490nobodyさん03/11/02 12:31ID:???
>489
それはわかっています。
だからこそ、「上手く置き換える手法」を知りたいのです。
0491nobodyさん03/11/02 12:33ID:???
つまり、S-Jisで文字化けを起こさないように、%A0で送られてきた半角スペースを
S-Jisの半角スペースである%20に置き換えたいと。
0492nobodyさん03/11/02 12:48ID:???
>>490,>>491
ってことは
>Macからのフォーム送信だと、半角スペースが%20ではなく%A0になる事があるのですが、
これは本当のことなのか?
てっきりShift-JISの文字列見て%A0を空白と勘違いしただけなんだと思ってた。
先頭から1文字ずつ見ていくしかないだろう。

別の文字コードでどうなるか試してみたら?
0493nobodyさん03/11/02 13:13ID:???
あれだな。
<FORM accept-charset="Shift_JIS">
を試してみるとか。macのブラウザが対応してるのかどうかは知らん。

あるいは
<FORM enctype="multipart/form-data">
で常にバイナリ送信させるとか。
0494nobodyさん03/11/02 14:21ID:???
レスありがとうございます。

>492
アクセスログを見たところ、%A0になってしまっていたのはいずれもUAがMac_PowerPCの方でした。
確認できた件数が6件と少ない為に断言はできませんが、Macからの送信で化ける可能性が高いと判断したのですがいかがでしょう?
自分ではMacマシンを所有していないので、正確な調査が行なえず申し訳ありません。

試行錯誤の末、>487のリンク先や、Perlメモの記述を参考に、1文字ずつ見ていくような処理が行なえるようになりました。
これでしばらく様子を見ようかと思います。
別の文字コードで試すというのは、「別文字コードでの送信」という意味でしょうか?
後程、やり方を調べた上で試してみたいと思います。

>493
accept-charasetは知りませんでした。
早速試してみたいと思います。
0495nobodyさん03/11/02 14:22ID:???
余談になるかもしれませんが、accept-charasetを調べている時に下記ページを見つけました。
ttp://www.att.or.jp/perl/cgi-tech-tips.html
ここに掲載されていた、CGI出力ヘッダでの文字コード指定と.htaccessによるADDType指定も
同時に行なった事を報告させていただきます。
0496nobodyさん03/11/02 14:23ID:???
>>494
再現性がないと難しいね。
まあ何か分かったらここへまとめてくれ。
0497nobodyさん03/11/02 14:53ID:???
accept-charaset じゃなくて accept-charset ね。念のため。

自分がこの属性に着目したのは、Operaから文字を投稿するとき
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
と指定していても、送信フォームの内容をShift_JISと判別してくれなかったから。

全部Shift_JISの半角カナで投稿すると、OperaはそれをEUC-JP全角と自動判別して
それをShift_JISに変換してから送信するので、CGI側で受け取った段階で既に文字が化ける。

最初はjcode.plの問題かと思ったけど、jcode.plを外しても同じだったのでほぼ間違いない。
0498nobodyさん03/11/02 15:33ID:???
長井秀和?
0499nobodyさん03/11/02 16:57ID:???
Operaでは&nbsp;が化けるらしい
0500nobodyさん03/11/02 22:32ID:???
>496
自分で確認できないのは厳しいですね。
後から気付いた事とわかった事を少しだけ載せます。

文字化けした6件ともMacのMSIEだった。(MSIE5.16〜5.22)
一部の人の証言ではS-Jisのページで出ていた文字をコピペしたとの事。(全員がそうであるかは不明)

>497
ご指摘ありがとうございます。
危うく間違えるところでした。
0501nobodyさん03/11/04 01:41ID:ZhxpP0UW
PerlのCGI::Carpモジュールってどのような時に必要になるのか
教えてはもらえませんか?
0502nobodyさん03/11/04 08:06ID:???
>>501
ぐぐればでる
050350103/11/04 13:37ID:???
ちょっと自分で調べてみました。
CGI::Carp素晴らしいですね。

use CGI::Carp qw(fatalsToBrowser);

とやるだけでdieや文法エラーに対してブラウザに
エラー内容を表示してくれなんて。
CGIの開発がかなり楽になりますね。
しかも標準モジュールなので別途インストールの必要は
ないみたい。今まで知らなかったよ。

本来の機能はHTTPDのログにエラー内容を書き込んでくれる
ということでよろしいですか?
0504nobodyさん03/11/04 13:45ID:???
本来の機能は佐々岡を先発で使うことだ。
0505nobodyさん03/11/04 21:05ID:Ljvqwop4
Apache 1.3系で

Redirect ^/hoge/abc([0-9]{4})\.html$ http://example.com/index.cgi?a=1&b=$1

で動作させると、

?が%3f &が%26になり、&のところで、ループしているようなURLを吐き出します。

ここで、解決できたのでしょうか?
0506nobodyさん03/11/04 21:33ID:???
>>505
Apache 限定の話題は Apache スレへ。
http://pc2.2ch.net/test/read.cgi/php/1043851302/

Redirect (mod_alias) じゃなく Rewrite (mod_rewrite) 使えば可能。
0507nobodyさん03/11/04 21:56ID:xEdoNAPc
普通の掲示板のようなCGIを2chみたいにHTMLで表示したりログ保存したりすることってできるの?
0508nobodyさん03/11/04 22:14ID:???
そういうふうに作ればできるだろう。
ていうか、そもそも「普通の掲示板」って何だ。2ch型は普通じゃないのか。
0509nobodyさん03/11/04 22:27ID:???
ヤフーみたいなのが「普通」なのか
それとも駅構内の掲示板が「普通」なのか
0510nobodyさん03/11/05 07:59ID:???
駅構内の掲示板に1票
0511nobodyさん03/11/05 08:29ID:???
JR新宿駅東口の掲示板ってあるの?
0512nobodyさん03/11/13 01:19ID:???
みなさん、CGI(Perl)でのセッション管理はどのようにやってます?
クッキーにログインパスワードを暗号化したものを食わせて、
画面が遷移するたびにその暗号化パスワードと本当のパスワードを認証させるとか。

Apacheのセッション管理モジュールとかは虫で、
Perlだけでできるようなの他にあったらきぼんぬ
0513nobodyさん03/11/13 08:34ID:???
>>512
例え暗号化していても、クッキーにパスワードを持たせるべきではない。
ログインしたときにセッションIDを持たせて、それで認証するのがセオリー。

セオリーだから細かい部分は調べれば資料はすぐに見つかるはず。
051451203/11/13 13:22ID:???
>>513
セッションIDを発行して、それをクッキーに持たせてSSL通信にすれば
今のところPerl-CGIでできる最善の方法かもしれないすね。

セッションIDは、普通、発行時刻とプロセス番号をくっつけてcryptするのが主流なんでしょうか?
まあユニークで、盗聴に耐えうるものであればなんでもいいような気がしますが。
で、セッションはサーバー上に生成するファイルで管理すると。。

本当にこれでセキュリティ上安全なのか不安になったのでみんなに聞いてみたまででつ。。
他にこういうことしてるとかあったら教えてくさい
0515nobodyさん03/11/14 10:39ID:???
セッションの管理って、
セッションIDにtimeとプロセスIDでユニークにしつつセッション開始時刻をとって、
セッション開始時に発行したセッションIDのファイル名のファイルを作って、
次にセッションIDでアクセスしたときに、毎回セッションファイルリストをチェックして、
存在すれば、そのセッションの開始時刻を見て、制限時間を切れてたら削除。
問題なければセッション継続。

でよろしいか?
てかこれしか思い浮かばん。
0516nobodyさん03/11/14 11:12ID:???
やってみれ。
0517nobodyさん03/11/14 14:55ID:???
漢ならやってみれ(何を?)
0518nobodyさん03/11/17 14:42ID:WakYOncE
入力画面で入力したパラメータをPOSTでcgiに渡してそのcgiから
さらに次のcgiに同じパラメータを渡す事ってできる?
0519nobodyさん03/11/17 15:20ID:???
もちろんできます
052051803/11/18 11:25ID:2RvczggN
やり方を教えてください。
環境はVinelinux2.2+CGI.PM+Perl4です
0521nobodyさん03/11/18 11:39ID:???
>>520
Perl....4!!??
0522nobodyさん03/11/18 11:51ID:???
とりあえず自分でできるところまでやってみようよ。
0523nobodyさん03/11/18 14:44ID:???
漢ならやってみれ(何を?)
052451803/11/18 19:41ID:???
GETで受け取るまではわかったのですが
POSTで渡す方法はありますか?
0525nobodyさん03/11/18 19:46ID:???
POSTでもらうときと同じ事をやればよい
ヘッダのみじゃ不可能なのはわかるよな?
052651803/11/18 20:23ID:???
?
二つ目のcgiへの渡し方がわかりません。
GETなら引数に書いてやればいいのですが
0527nobodyさん03/11/18 20:29ID:???
>526
検索とかしてみた?
検索したならどういう単語で検索した?
052851803/11/18 20:33ID:???
>>527
cgi.pm GET
052951803/11/18 20:48ID:???
http://tohoho.wakusei.ne.jp/lng/200003/00030338.htm
を発見しました。
できればはじめのcgiで作ったフォームから次のcgiに渡したいのですが・・・
Javascriptとかを使わないと無理ですか?
0530http://mokorikomo.2ch.net/03/11/18 23:19ID:???
ura2ch
0531nobodyさん03/11/19 11:00ID:???
ある画像を、アカウント認証した人だけに見せるページを考えてます。
その場合、認証成功した人が、HTMLのソースを見ると普通に画像のパスがわかってしまい、
アカウントを持っていない人でも、そのURLを教えてもらえれば見れてしまうのですが、
何かいい考えはありますでしょうか?
0532nobodyさん03/11/19 11:43ID:???
>>531
http://httpd.apache.org/docs-2.0/howto/auth.html
http://support.microsoft.com/default.aspx?scid=kb;ja;324276
053353103/11/19 11:56ID:???
>>532
ありがとうございます。
すいません、情報不足でした。
BASIC認証は使わずに、CGIで認証をした人にだけ見せたいです。

遷移としては、
インデックス⇒ログイン⇒画像ページ⇒HTML内で画像表示
BASIC認証でやる場合、ログイン部分に置けば万事解決ですが、
ログインCGIを使用しているため、
ログインアカウントと、画像を表示するアカウントの二つが存在するのは
あまり望ましくないですね。
0534nobodyさん 03/11/19 14:04ID:???
負荷がかかってもいいんであれば、
cgiに画像を読み込ませてそれを出力すればいいんでないの?
0535nobodyさん03/11/19 17:10ID:7+Nu5MKS
フリーでメルマガ一斉配信みたいなスクリプトありませんかね〜
探しているのですが有料ばかり(^^;)
0536nobodyさん03/11/19 17:32ID:???
>>535
【CGI】こんなCGI探してますver.1.1【素材】
http://pc2.2ch.net/test/read.cgi/hp/1067286961/
0537nobodyさん03/11/19 17:33ID:???
>>533
漏れの案
認証した人だけに見せるページはCGIが吐き出す。
画像のパーミを400とか600にして、直に見ようとしたら403エラーが出るように汁。
これでどうだ。
0538nobodyさん03/11/19 18:16ID:???
>>537
CGI プログラム経由で吐くなら、画像ファイルをドキュメントルート
以下に置く必要は全く無い。つか >>534 と結婚。

>>533
ログイン CGI とやらが何をする為のものか分からん上に、サーバ
環境も許されている権限も分からん。BASIC認証が使えん理由も
分からん (ログイン処理を変えられるなら、アカウントを .htpasswd
で一括管理すれば済む話) 。

あと本質的に、アカ持ってる奴が画像キャプチャしてバラ撒いたら
終わりなので、こういう部分に力を入れても労多く益少ない上に
正規ユーザが不便なだけ。
0539nobodyさん03/11/20 00:05ID:nKwXTSg6
[質問事項]
perlのデバッガを使用したいのですが、以下のメッセージが出力されており実行できません。対応方法を教えてください。

Can't locate perl5db.pl in @INC (@INC  contains: /opt/perl5/lib/5.00502/PA-RISC1.
1 /opt/perl5/lib/5.00502 /opt/perl5/lib/site_perl/5.005/PA-RISC1.1 /opt/perl5/li
b/site_perl/5.005 .).
BEGIN failed--compilation aborted.

[環境]
OS:HP-UX11.0
perlのバージョン:version 5.005_02 built for PA-RISC1.1

[補足事項]
�@本環境ではperl4と5が共存しております。それぞれのパスは以下のとおり
/usr/contrib/bin/perl    ・・・ver4
/usr/contrib/Q4/bin/perl   ・・・ver5.00502

以上、よろしくお願いします。
0540nobodyさん03/11/20 00:18ID:???
>>539
そのパスの中にはperl5db.plが見つからないって出てるでしょ
0541nobodyさん03/11/20 05:40ID:EAgQK2Up
http://esenden.com/rank/network/ranklink.cgi?id=mercury
0542nobodyさん03/11/23 12:07ID:???
CGIを動かす場合、
改行コードは、UNIX系OSならLF、WindowsならCR+LFに変換してUPする必要があるけど
文字コードは、EUCだろうがSJISだろうが、
ブラウザへの出力、フォームからのクエリーストリングなどが、
スクリプトの文字コードと一致するように注意していれば全然問題ないかと思うんだけど、
この考えって問題ある?
0543nobodyさん03/11/23 12:28ID:???
実は改行コードもあまり関係が無い
054454203/11/23 12:46ID:???
>>543
UNIX系OSで、CRLFのCGIを実行するとエラーおきない?
0545nobodyさん03/11/23 12:53ID:???
それは、1行目のコマンド指定のけつに\r単独でくっつくから
#!/usr/bin/perl\r <-こんな感じ。perl\rってコマンド作ってやるか、
#!/usr/bin/perl --\r みたいに、 オプションをつけることでCRLFでも動作する

つまり、改行コードはCGI動作の本質的な問題ではない
054654203/11/23 13:02ID:???
なるほど。

となると、
#! /usr/bin/perl --
ってやっとけば、別にShift_JIS+CRLFでも無問題か。。
配布CGI作るときに、メモ帳でもいじれるようにできそうだね。
0547_03/11/25 05:32ID:???
1つお聞きしたい事があります。
状況が分かりやすいようにサンプルソースを書いてみました。

<form name="f" method="POST" action="xx.cgi">
<input type="text" name="t1">
<input type="button" name="b1" value="【push】" onClick="f1()">
</form>

<script language="javascript">
function f1(){
document.f.t1.value = "1";
document.f.submit();
}
</script>


上記のコードは【push】ボタンを押した際、t1フィールドの値に"1"がセット
されて、xx.cgiにPOSTされるものです。

Win環境ではしっかりt1の値に"1"がセットされたものが渡るのですが、
Mac環境だとなぜかt1の値がnullになってしまいます。
手動で入力した時は問題なく渡るようなのですが・・・

ちなみにMACの動作環境はOSX、IE6です。

これはMACの仕様なのでしょうか?
期待通りにデータを渡す方法がありませんでしょうか?

もしどなたかご存知の方がいましたらご教授ください。
よろしくお願いします。
0548nobodyさん03/11/25 05:52ID:???
>>547
それCGIの問題なの?
0549nobodyさん03/11/25 06:59ID:???
>>547
http://pc2.2ch.net/test/read.cgi/php/1012750353/301
0550ぱくちゃん03/11/25 17:12ID:UdoS9gNt
WindowsXPでPerlのプログラミングをしています。
ビープ音を鳴らしたいんですけど、どなたか方法を知りませんでしょうか?
0551ぱくちゃん03/11/25 17:14ID:UdoS9gNt
WindowsXPでPerlによるビープ音の鳴らす方法について知りませんでしょうか?
0552nobodyさん03/11/25 17:21ID:???
>>550
Perl の話は Perl スレへ。
http://pc2.2ch.net/test/read.cgi/php/1066286828/
http://search.cpan.org/~giulienk/Audio-Beep-0.10/
0553nobodyさん03/11/25 19:21ID:UeVyDd4a
http://2chp.net/
http://2chp.net/
http://2chp.net/
http://2chp.net/
http://2chp.net/
http://2chp.net/
http://2chp.net/
http://2chp.net/
http://2chp.net/
0554あらスィー03/11/25 20:15ID:???
Common Gateway Interface
0555nobodyさん03/11/26 11:04ID:???
>>542
Windowsでcgiファイル作ってUnix(Linux)サーバにアップするとき、
FTPソフトによっては、勝手にCRLF->LFに変換してくれる場合があるよ。
0556ぱくちゃん03/11/26 15:50ID:+ZoCfoLg
お世話になってます。ブラウザ上でprint "\a"を用いたCGIにアクセスさせビープ音
を鳴らそうと思ったのですが、うまく行きません。どうしたらよろしいでしょうか?
0557nobodyさん03/11/26 16:13ID:???
>>556
ご安心ください。
ちゃんとサーバの方でビープ音が鳴っています。
0558ぱくちゃん03/11/26 16:37ID:+ZoCfoLg
1台のPC上でサーバーソフトAnHTTPDを用いて、ローカルでCGIにアクセスしているのですが、
「・」が表示され、音はならない状況ですが…
0559ぱくちゃん03/11/26 16:41ID:+ZoCfoLg
1台のPCでAnHttpdサーバーソフトを用いて、ローカルでCGIにアクセスして
います。「・」が表示され、音はならないようですが...
0560nobodyさん03/11/26 22:02ID:???
ブラウザが鳴らしてないだけなんじゃない?
ほら、たとえばCRLFを表示しても改行しないでしょ。それと同じで。
0561nobodyさん03/11/26 22:49ID:???
飾りじゃないのよHTMLは。
0562nobodyさん03/11/27 00:33ID:???
ハッハァ〜♪
0563nobodyさん03/11/27 09:12ID:???
uhoxtu
0564nobodyさん03/11/27 10:34ID:???
コマンドプロンプトでperl -e "print \"\a\""
としても鳴らないね(win xp pro)
perl -e "print \"\n\""
だと改行されんだけど。
0565nobodyさん03/11/27 10:52ID:???
>>564
ウチでは鳴るけどね
0566nobodyさん03/11/27 12:21ID:???
win2kでは鳴りますた
コマンドプロンプトでだけど
0567ぱくちゃん03/11/27 14:01ID:qZERqfQc
Win95でもやってみましたが、だめでした。コマンドプロンプトでは、
XP、95どちらでもできました。あと、ビープ音をならすプログラムをC
で作成し、これをexecコマンドでCGIから呼び出しましたけれど、
音は出ませんでした。
ブラウザはIEVer5とOperaでやってみました。ブラウザが鳴らしていな
いのでしょうか?なにか設定があるのでしょうか?
0568nobodyさん03/11/27 14:08ID:???
おまえもうちょっとよく考えろよ
全部本人か知らないが、マルチで書きまくってたから
教えてはやれないがな
0569nobodyさん03/12/02 17:48ID:???
cgiのページ内でアンカーリンクってできないよね?
イメージとしては、
<a href="hoge.cgi#here">アンカー</a>
みたいな。
0570nobodyさん03/12/02 18:22ID:???
>>569
<a href="hoge.cgi?huga=here">アンカー</a>
クエリで吐き出す内容を変えればいいだろ
0571nobodyさん03/12/02 18:24ID:???
>>569
普通にできる。
057256903/12/03 11:17ID:???
>>570
それだとJavascript必要になりそうだな…

>>571
ほんとだ、普通にいくね…
すまんかった。
0573nobodyさん04/01/11 13:15ID:upkQsXWI
原因不明のバグで困っています・・・(つд`)
すみません、どなたかわかる方いますでしょうか?

CGI.pm を使ったフォーム送信(ファイルアップロード付き)→DB登録
の処理をするCGIを、SSLをかけたサーバで動作させてます。

フォーム送信する要素数(inputタグ)が少ないうちは問題なく登録できますが、
要素数が多くなる(20個くらい)につれて、以下の2つの症状が出る確立が増えます。
(確立があがるだけなので、要素数が多くても問題なく登録できる場合もあります)

(1) フォーム送信後、読み込み中のまま応答しなくなる。
 →数分後、IEデフォルトの「ページを表示できません」が表示される(IEで見た場合)
 (print STDERR でデバッグしたところ、決まって my $query = new CGI; の部分で止まる)
 ※読み込み中に、ブラウザの中止ボタンを押すと、my $query = new CGI; から先に進みます。
(2) フォーム送信後、CGIの処理に行く前に、「ページを表示できません」が表示される。

再現できるバグならまだいいのですが、上手くいくときといかないときがあるのが辛いです。
CGI.pmのバグかと思い、最新の3.01にバージョンアップしましたが変わりませんでした。
ちなみに実行環境は以下の通りです。

OS: Kondara Linux 2.4.18
WWW: Apache/1.3.29 mod_ssl/2.8.16 OpenSSL/0.9.7c
Perl: ver 5.6.1
CGI.pm: ver 3.01
0574nobodyさん04/01/11 14:24ID:Ua0H5zjq
一般的にCGIの拡張子って.cgiだと思うけれど
mod_perlで動かすCGIの拡張子って皆さんどう付けています?
べつに拡張子区別したりしないですか?
0575nobodyさん04/01/11 14:57ID:???
mod_perlで動かすCGI?
0576nobodyさん04/01/11 15:04ID:Ua0H5zjq
>>575
あは。そうっすね(笑)
Apache::Registryで動かすファイルのことです。
0577nobodyさん04/01/11 22:42ID:???
mod_perlは拡張子変えるということはわざわざしない。

ScriptAliasで同じディレクトリ内をべつのアドレスに変えるだけさ
0578nobodyさん04/01/15 16:35ID:WbVNIjHL
http://www.hoge.fuga/1234 で、
http://www.hoge.fuga/index.cgi?1234

と認識させることできる?
0579nobodyさん04/01/15 17:22ID:???
>>578
rewriteでやれ。CGIには関係ない。
0580パソコン使用中@さわらないでね04/01/15 19:44ID:gKp4Nezk
2ちゃんみたいな掲示板を
携帯でやりたいんだけど
そうゆうCGIってある?
0581nobodyさん04/01/15 19:51ID:???
>>580
マルチはやめれ
0582nobodyさん04/01/19 22:34ID:???
>>578
貴様の目的はPR
0583nobodyさん04/01/23 11:09ID:???
<!--a_start-->aaaaa<!--a_finish-->
<!--b_start-->bbbbb<!--b_finish-->
<!--a_start-->aaaaa<!--a_finish-->
<!--b_start-->bbbbb<!--b_finish-->
ってかかれてるHTMLがあって
CGIで、flagが1だったら<!--b_start-->〜<!--b_finish-->までを隠して
<!--a_start-->〜<!--a_finish-->を表示。flagが0の場合はbを表示してaを非表示をしたいです。

パターンマッチで置換するのはなんとなくわかるのですけど、
具体的にどうすればいいのかがサパーリです。

すみませんがご教授願います。
058458304/01/23 11:51ID:???
$html =~ s/<!--a_start-->.*?<!--a_finish-->//sg unless ( $flag );
$html =~ s/<!--b_start-->.*?<!--b_finish-->//sg if ( $flag );

すいませんいけました。
0585nobodyさん04/01/23 14:46ID:???
>>583-584
スレ違い
0586nobodyさん04/01/24 00:26ID:sB1NzHfU
http://pc2.2ch.net/test/read.cgi/php/1072896288/
から誘導されてきましたー。


現在ログをHTMLファイルとして吐き出す掲示板を作っています。
動作自体は問題ないのですが、HTMLをファイルとして吐き出して上書きする
性質上、 パーミッションが606にならざるを得ません。 suExecはナシってことで。

こうしたHTMLファイルをサーバー上に置いた場合、外部から書き換えられる
危険性があるでしょうか。
まあ、普通の掲示板のログファイルが勝手に書き換えられるというのも聞かない
ので大丈夫だと思うのですが。

スクリプトでも埋め込まれると目も当てられないので。

過去ログ全部たどったら、「ダメだ」と「いや大丈夫だ」となってて、どっちでしょう?
0587nobodyさん04/01/24 00:39ID:???
>>586
じゃあ書き換える前後にパーミッションを変えればいいじゃないの
058858604/01/24 00:40ID:sB1NzHfU
>>587
CGI上からのchmodのできないサーバーです。
情報小出しで申し訳ない。
0589nobodyさん04/01/24 00:49ID:???
>>586
外部から書き換えられる危険性はほとんど無いが、
内部から書き換えられる危険性は結構高い。

例えば、君がそのCGIをどっかのプロバイダの共用サーバ上で動かしているとして、
その共用サーバは suExec 使っていない、つまり全ユーザのCGIが同じ実効uidで動いているわけだが、
そのプロバイダに俺も入会して、同じ共用サーバにアカウントもらったとする。
そしたら俺は、速攻で「そのサーバ上の全ディレクトリを回って606のファイルを見つけるCGI」を組んで
次に「606ファイルを好きに書き換えるCGI」を組んで
俺が将来何か素晴らしいことを思いついた時に踏み台にできるよう準備しておく。
何の役に立つかはよくわからないが、何をやったとしてもまず足が付かないので、理想的な環境だ。

もちろん、俺のようなやつは世の中にそうそういないので、
そんなやつと同じサーバで出会う確率は無視できるほど小さい、と言うこともできる。
059058604/01/24 01:10ID:sB1NzHfU
>>589
> その共用サーバは suExec 使っていない、つまり全ユーザのCGIが同じ実効uidで動いているわけだが、
> そのプロバイダに俺も入会して、同じ共用サーバにアカウントもらったとする。
> そしたら俺は、速攻で「そのサーバ上の全ディレクトリを回って606のファイルを見つけるCGI」を組んで
> 次に「606ファイルを好きに書き換えるCGI」を組んで

なるほど。つまり書き込み権限のあるフォルダにHTMLがあればどうにでもなる、と。
707などというパーミッションはとんでもない、ということでいいですか?
サーバー側でホームディレクトリ以下のファイルしか変更できないような対策があれ
ば安心?

サーバーがAppachだとして、管理者がsuExecを導入しない理由ってなに?
とまで聞いたらスレ違いでしょうか。
■ このスレッドは過去ログ倉庫に格納されています