CGIだけど、なんか質問ある? part 6
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
02/04/23 20:28ID:Kp0cZQna<<注意:CGIは特定の言語に依存するものではありません>>
Perlのコーディングに関する質問はこちら
【Perl】初心者コーナーPart11
http://pc.2ch.net/test/read.cgi/php/1017201229/
過去ログは>>2
0751nobodyさん
02/06/20 19:06ID:???違う。変換はちゃんと変換処理する必要がある(jcode.plなどで)
>print "Content-type: text/html\; charset=EUC-JP\n\n";
これはただブラウザに「このテキストの文字コードはEUC-JPです」と伝えているだけ。
だから当然テキスト自体がShift_JISなら文字化けする。
0752nobodyさん
02/06/20 19:12ID:???今はPATH_INFOから読んでいるようですが、
QUERY_STRINGではなくPATH_INFOから読むことにどのような意義があるんですかね?
送信する文字数が減るだけ・・・ではないと思うのですが・・・
0753nobodyさん
02/06/20 19:14ID:???これでうまくいきました
print "Content-type: text/html\; charset=SHIFT-JIS\n\n";
jcode.jpをはずしましたが、同じように動きました。
jcode.plは、どのような働きがあるのでしょうか
0754nobodyさん
02/06/20 19:39ID:???まあ2chの場合は転送量が減ることが大きかったよな。
一般には、ttp://domain/download.cgi/hoge.jpg みたいなURLは
ローカルに保存するとき"download.cgi"じゃなく"hoge.jpg"という
ファイル名になる(ブラウザがごまかされる)ので便利。
0755nobodyさん
02/06/20 21:02ID:???jcode.plは文字コードを変換したりするためのもの。(JIS SJIS EUC)
意味わからずにどうやって使ってたのか不思議だ。
>print "Content-type: text/html\; charset=SHIFT-JIS\n\n";
書き方間違ってるし・・。
○ print "Content-type: text/html; charset=Shift_JIS\n\n";
075662
02/06/20 21:32ID:???require でjcode.plしても日本語が正しく表示できるのが不思議だ
xxx.cgi Shift-JISで保存
charset=Shift_JIS でブラウザ表示
このときは、jcode.plが必要ないということでいいですか?
UNIXのときは
xxx.cgi がEUCか何かになるのでjcode.plがいるということですか?
0757nobodyさん
02/06/20 21:36ID:???何を言っているのやら・・・
jcode.plのgetcodeである文字列の文字コードを取得したり、
convertである文字列の文字コードを変換したりする
require は別ファイルのスクリプトを利用可能にするだけ
コーディング以前に勉強すべきことが山ほどあるぞ
0759752
02/06/20 23:22ID:???なるほど・・・やはり転送量の問題でしたか。
ファイル名がそうなるのは知らなかったですわ。
画像を出力するCGIにこれは便利ですな。
Thanx.
0760nobodyさん
02/06/21 00:31ID:???で、jcode 関係で熱くなっている所スマンが、それがどう【CGI】と関係あるの?
単なるコーディングの話じゃぁ?
0762nobodyさん
02/06/21 00:40ID:???0763nobodyさん
02/06/21 03:49ID:???うんうん。
ttp://domain/download/hoge.jpg
(downloadはCGI)
としておくと、見た人も気づかないし。
0764nobodyさん
02/06/21 13:09ID:???0765nobodyさん
02/06/21 13:33ID:???0766nobodyさん
02/06/21 13:47ID:???さくらインターネットと言うCGI可能サーバーを利用しています。
配布している掲示板を設置してパーミッションや転送は案内通り何回
も確認しながら行いました。しかしエラー番号500の連続です。
試しに INDEX.HTMLをINDEX.CGIに変更してアップしましたがそれでも
エラー500と出ます。これは設定とかの問題ではなくサーバー問題で
しょうか??
0767nobodyさん
02/06/21 14:19ID:???どの様な方法がよろいしいでしょうか?
0768s
02/06/21 14:32ID:???それって、CGIをアップできる環境でってこと?
0770s
02/06/21 14:38ID:???恐らく、拡張子を小文字にすればいいのでは?
その他では、さくらインターネットがどういう仕組みになってるか知らんけど
個別に .htaccess を設定するようになっているとか。
0771nobodyさん
02/06/21 15:04ID:???http://pc.2ch.net/test/read.cgi/hp/1024149705/278
おまえ、ここでも聞いてるだろ
0773xx
02/06/21 15:17ID:???ふうーん。CGI規制って、どすんの?
AddHandler cgi-script .cgi の行をコメントにしてリスタートかける
のかね?
0774nobodyさん
02/06/21 17:23ID:nrprTantホームページを作成にあたり改行コードや出力漢字コードなどの
設定は必要でしょうか?
0775xx
02/06/21 17:26ID:???CGIを動作させるサーバ環境に合わせれば?
0776nobodyさん
02/06/21 17:40ID:???改行コードは、UNIX では一般に LF が使われ、
DOS、Windows、OS/2 では CR+LF が使われています。
0777nobodyさん
02/06/21 19:26ID:???/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| 今だ!777ゲットォォォォ!!!!!
\__ ________
∨ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
日 凸 ▽ ∇ �U < お客さん、暴れないでよぉ
≡≡≡≡≡≡≡ ∧ ∧ \____________
�U ∩ [] % Σ(゚Д゚,,) ゴルァ!? (´´
ヾ∇ ∧∧ ) |つ∽ (´⌒(´
日ヾ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (´⌒(´⌒;;
ズサガッシャーン!!
━┳━ ━┳━
0778nobodyさん
02/06/21 21:20ID:???cgiをサーバーに転送しましたがどうやらcgiとして認識をしてくれません。これってどう言うことでしょうか?
0779xx
02/06/21 21:37ID:???(UNIX系同士またはWindows系同士など)だったらバイナリモードで送れば
いいし、違っていればFTPのサーバ側(リモートホスト)とローカル側を設定
すればいいでしょう。
0780>>778
02/06/21 21:44ID:???ホームページビルダーなどの転送モードはテキストで上げてます。
しかしPLファイルなどは認識していますがcgiに関してはデレクトリー
では ? になってcgiではないみたいなのですが。。。
テキストでいいのだが、?とはファイル名そのものなのか拡張子なのか
0782>>778
02/06/21 21:59ID:???0783xx
02/06/21 22:07ID:???それはそのサーバのサポートページで調べるか問い合わせなさいよ。
それより、認識しないとか?になってるとか言ってるけど、
【何をしたら】【どうなったのか】
あるいは
【どうやって確認して】【どうなっているのか】
それを書かなきゃわからんよ。
0785>>778
02/06/21 22:31ID:???転送後のパーミッション設定はCGI配布先資料など確認しながら行いました。
>>784
さくらインターネットのバーチャルドメインって言う事ですが5日前に1回
2日前に1回問い合わせをしましたが返信が無い状態です。
Index of /mmm
Name Last modified Size Description
--------------------------------------------------------------------------------
Parent Directory 21-Jun-2002 22:21 -
?acb.cgi 21-Jun-2002 21:49 4k
--------------------------------------------------------------------------------
Apache/1.3.26 Server at www.XXXXXXXXX.com Port 80
?って表示されます。
0786nobodyさん
02/06/21 22:39ID:rH/nmPPcサーバーエラー500って言うのは
1:.htaccessの書式に問題がある
2:CGIファイルやディレクトリのパーミッションが異常
3:CGIが正しく動作していない(CGIプログラム内のエラー)
4:改行コード(LFのみ)または漢字コードがただしくない
どういう文面で問い合わせたのか知らんが、元質問みたいなのなら
意味がわからなくて困ってるのかもしれん。
それはいいとして、?についてだがファイル名に認識できない文字が
含まれると?になる場合がある。
ファイル名のacb.cgiの前、■■■acb.cgiというように■の部分が
何かそういう文字になってないか?
0788>>788
02/06/21 23:25ID:???#!/usr/local/bin/perl
print "Content-type: text/html\n\n";
print "<HTML>\n";
print "<TITLE>Perl Script Test</TITLE>\n";
print "Hello World\n";
print "</HTML>\n";
パーミッション設定OK・テキスト送信OKで通常なら
HELLOって出てくると思うのですがサーバーエラー500となります。
.htaccessによるCGI許可を設置もして確認して見ましたが意味が無かったです。
0789nobodyさん
02/06/21 23:27ID:???0790xx
02/06/21 23:29ID:???Perlパスはあってるの?
>789
NPHスクリプトじゃないんだからぁ。
0791nobodyさん
02/06/21 23:37ID:???0792cgi-bin
02/06/21 23:48ID:???漏れもさくらネット使っています。
Home <=問題はここに6種類の.logとか色々あると思いますが、
| アクセルログ以外で最近更新した所ありますか?もしあれば
| 自PCにダウンロードして確認して下さい。
| PS漏れも経験しましたが1回設定ミスしてHome訳の分からん
| ファイルが形成されてました。削除してうpして見て下さい。
WWW←ここよりファイルを入れる所!
|
0793いきなり・・・
02/06/22 01:51ID:2uyfCrpEhttp://www.kent-web.com/でDLしたGATE-Xなんですが、
pass.cgiが開けないというエラーがでてしまいます。もち、
該当するファイルが全部UPして.txtを.cgiに変更してUPしています。
おそらく原因はpass.cgiの中にある1文だと思うのですが・・・
---------------------------------------------
# 隠しディレクトリ (gatex.cgiの設定と合わせること)
$target_dir = "/home/kent/private_html";
---------------------------------------------
↑ここの入力なんですが、例えば・・・
http://www.abc.co.jp/123/456 がプロバイダーから貰ったURLだとして
このCGIを入れているファルダが・・
http://www.abc.co.jp/123/456/cgi-bin/gatex
だとすると、この上の記述ではどこからどこまでを記入しないとダメなんですか?
0794いきなり・・・
02/06/22 02:02ID:???おそらく原因はpass.cgiの中にある1文だと思うのですが・・・
↓
おそらく原因はcook.cgiの中にある1文だと思うのですが・・・
0796>>778
02/06/22 03:12ID:???0797>>778
02/06/22 03:13ID:???テキスト(CGI)をアップする時に問題があるのかな??
因みにWinXPのメモを利用しています。
メモ帳?じゃあ文字コードが違ってるのだろう
0800>>778
02/06/22 04:41ID:???0801教えて下さいませ
02/06/22 05:49ID:c+t9uPJK$host[1] = "***.***.***";
$host[2] = "***.***.***";
local($match) = 0;
foreach (@host) {
if ($ENV{'REMOTE_ADDR'} =~ /$_/) { $match=1; last; }
}
if ($match) {
print "Content-type: text/html\n\n";
print "<html><body>アクセスできません</body></html>";
exit;
}
↑これをCGIの上の方に書けば、指定したIPからのアクセス制限を防げるのですが
これを改造して、指定IP以外を制限する様には出来ますか?
やり方を教えて下さいませ。
よろしくお願いします。
0802801
02/06/22 05:52ID:c+t9uPJKO=アクセス制限出来る
0803nobodyさん
02/06/22 05:58ID:???前: if ($match) {
後: if (not $match) {
0804801
02/06/22 07:22ID:c+t9uPJKありがとうございます!
助かります。
あなたは神です。
0806801
02/06/22 07:48ID:c+t9uPJKいえ、人生の負組です
XPのメモ帳がどんなのかわからんが、UnicodeやUTF-8ではダメ。
確かメモ帳ならANSIというのがあったはず。
ちなみに>>788のテストコードは一応ちゃんと表示されます。
つーか、フリーのエディタでも入れなさいよ。
08099qZVAtvw
02/06/22 12:45ID:xco48xkThtml製作をはじめて5年になります。
ずっとPerlを使ったページを作りたいと思いコツコツと勉強してきました。
その間自社サーバの管理者からはずっとPerlは危険だと言われてきて、
そんなのは高い金を払ってもいいからその道のプロにやらせて
責任を擦り付けろ、とか言われています。
一般的にソース公開をされているものの流用にも反対です。
サーバにPerlさえ入れてくれません。特にSendMailを使う
ことに危険性を感じているそうで、私もそれはアタックの踏み台にされるとは
聞いたことがありますが、それじゃメールフォームも組めません。
仕方がないので現在は自費でレンタルサーバを借りて実験を続けています。
損害賠償がきたらお前は払えるのか、お客さんが要望するからって
いわれるままに危険なものを作っていいのか!と怒鳴られました。
といってこのままでは仕事が減ってしまうし
お客さんはそんな高いお金を払ってくれるわけもない。
今時なんとも・・・と思っているのですが説得材料が足りません。
私自身も本当に危険なのかもしれない、とも思っています。
客観的なご意見をいただけると幸いです。よろしくお願いします。
0810xx
02/06/22 12:57ID:???いいのでは?
そうすれば勝手なCGIをユーザがつくることできないしさぁ。
0811nobodyさん
02/06/22 13:30ID:???社内に専門がいないのであれば外部委託するのには賛成
809 を納得させられない鯖管もスキルあまり無さそうだし、まぁ無理すんな
# ちなみに sendmail だけがメール送信の方法ではない
あと、いくらソース公開されていても、安全であることを
会社としての立場で承認できなければ意味無いね
制作を請け負ってるように読めるけど、自社サーバにPerlを
入れたいとかって、そのサーバに客のページを置かせてるわけ?
で、そこでCGIを使いたいと言ってるの?
サーバにPerlだのなんだの入れるってことは、それ自体の
維持・管理が発生するわけで、ISPやレンタルしてるところは
それを商売として十分なスキルとマンパワーでやってるからこそ
やっっていけるのだし、あなたの会社にそれだけの管理者が
いないのなら外部委託っていうのも十分に納得のいく話だと思う。
最近よく聞く漏洩なんかもパーミッションひとつで簡単に
起こりえる事だし、あなたがそういうミスを犯さない保証はないわけだから
会社として必要以上に責任を負わされるのを避けるという考えは
よくわかる。
まあ、>>811と同じく外部委託に賛成。
0813nobodyさん
02/06/22 15:04ID:???自分が安全なCGIを書ける自信と根拠がないのなら委託するほうがいい。
CGIとかを設置するってのは自分の家にドアをあらたに付け足すような
物で、鍵のかけ方とかをちゃんと知らない限り泥棒に入ってくれって
言ってるようなものだからはっきり言って俺が管理者だったとしても
実力が不確かな人にそんな要求をされたら絶対につっぱねるな。
0814809
02/06/22 15:54ID:xco48xkTいい加減な質問から的確なアドバイスをありがとうございます。
(もう少し質問が上手になりたいと反省しています。すみません。)
おかげさまで自社サーバへ設置することが
とてもリスクが大きいと言うことがわかりました。
サーバ管理者の不安もやっと納得がいきました。
ここで疑問なのですが
ISP やレンタルサーバを利用しているお客さまが
CGIの設置を希望されている場合も何らかのトラブルがあった場合
やはり責任は設置した人にあるのでしょうか?
私も設置者に全然責任がないとは思えないのですが
某社のように個人情報が流失、なんてこともあり得るわけで
サーバのセキュリティの責任はどこになるのでしょう。
0815_
02/06/22 16:40ID:???よほどひどいISP やレンタルサーバでもないかぎり、そこらの
厨房がつついたくらいでどうにかなるほど甘い設定はそうはない。
ほとんどが設置ミスかCGIプログラムのセキュ穴。
当然、設置者にほとんどすべて責任があるでしょう。
おそらく規約などにも書かれてると思うよ。
0816nobodyさん
02/06/22 17:59ID:???個人情報の取り扱いについては、「セキュリティポリシー」として
きちんと明示している企業も、ぼちぼちではあるが現れ始めている
… CGI の話からずれてきたので、そろそろ終了でいいかい?
0817809
02/06/22 18:20ID:xco48xkT規定をよく読みます。
とても納得できました。ありがとうございました。
終了、ということでお願いします。
0818nobodyさん
02/06/23 15:38ID:???することはできますか?ル−プのnext ラベル的な感じで
0820(´〜`;)
02/06/23 17:09ID:KFnCt31Tへんな記号とか。
たとえば、 CGIの環境変数 $ENV{'HTTP_USER_AGENT'} とか JavaScript の navigator.userAgent とか
で受け取ったUAの文字コードってどうなるんでしょうか?
もし相手の環境によって変わるなら jcode.pl などで変換してやる必要があるんじゃないかと思って。
でもアクセス解析に jcode.pl 使うのもなんだかなぁ、と思ったり。
どうしましょう?
0821nobodyさん
02/06/23 17:23ID:???おれはリファラのURLデコードを日本語に直すために(←検索エンジン対策)
jcode.pl使ってるから、そのついでにUSER_AGENTも漢字統一してます。
最近多いですよね。。。へんなUA。
0822(´〜`;)
02/06/23 17:39ID:???なるほど、検索ワードの日本語もありましたね。なら jcode.pl 使うのもありかも、うんうん。
ついでに検索ワードの解析もつけてみることにします。
ユーザーエージェントに日本語とか混じってるとすごいビビるんですよ、
いちいち書き換えんなと思う(笑 でも個人が特定できてしまう罠。。)
0823nobodyさん
02/06/23 18:00ID:???0824nobodyさん
02/06/23 18:56ID:???むしろファイルオ−プンするときは毎回やらなきゃいけないの?
普通のオ−プンとロックの違いがあまりわからないかもしれないせいかも
しれないがよろしくです。
0826nobodyさん
02/06/23 19:09ID:???http://openlab.ring.gr.jp/Jcode/index-j.html
>>824
オープンlock?
open(1)のO_EXLOCKのことか?
移植性がないっぽいし、普通はやめた方が無難じゃなかろうか。
つーか二行目以降は意味がわからん。
0827824
02/06/23 19:13ID:???flockです。そしてpealです。
んで、排他制御の必要性と意味はつかめるんだがだからといって
一つ一つにオ−プンにflockかけるのはどうかなと、ちなみに
自分が作ったやつはオ−プンが結構あるので毎回というのは。
FILEに書き込む時はロック、配列化するだけならロックなし、みたいな
アドバイス求む。具体例で。
0828824
02/06/23 19:16ID:???0829nobodyさん
02/06/23 19:17ID:???君にぴったりのスレがあるじゃないか。
【Perl】ファイルロック(排他処理)について語ろう
http://pc.2ch.net/test/read.cgi/php/1024795138/
0830824
02/06/23 19:19ID:???いることだし、よろしく頼む。私のために人肌脱いでおくれやす
0831最強。
02/06/23 19:25ID:???$!/usr/bin/perl
open(LOCK, ">lock.lock");
flock(LOCK, 2);
〜〜 処理 〜〜
close(LOCK);
exit;
__END__
0832nobodyさん
02/06/23 19:28ID:???0833824
02/06/23 19:29ID:???0834教えて君
02/06/24 00:28ID:12oYTmrRIPで制限すると毎回IP変わる人には意味がありませんし
cookieを持ってかえってもらって次回からアクセス制限する方法だとcookieオフにされたら終わりです。
何かもっと効果的な方法はないでしょうか。
よろしくお願い致します。
0836nobodyさん
02/06/24 03:40ID:/QyYw+LL0837nobodyさん
02/06/24 05:41ID:???0840nobodyさん
02/06/24 07:35ID:???有り物使ったほうがよくない?
Net::*
LWP::*
http://member.nifty.ne.jp/hippo2000/perltips/LWP.html
0841nobodyさん
02/06/24 14:08ID:n/Hv9l08Cookie offだと入れない設定にすればよいかと。
0842836
02/06/24 15:20ID:???0843nobodyさん
02/06/24 22:01ID:12oYTmrRありがとうございます。とりあえずそういう方向でやってみます。
あと・・CGIでMACアドレスの採取ってできないんでしょうか。
なんかこの世にひとつしかないような事を聞いたのでこれではじければいいのですが・・
0844nobodyさん
02/06/24 22:03ID:???MACアドレスってさぁ、LANボードだけじゃないん?
モデムはないんちゃうん?
0845nobodyさん
02/06/24 22:14ID:???この認識は正確には間違っている。某大手メーカーのファームの開発やった事
あるんだけど、MACアドレスなんて BOOT ROM の隠しコマンドで書換できる
0847nobodyさん
02/06/25 02:34ID:???この世に一つしかないcookie発行すればいいわけで
普通にWebつかってて今時cookieをOFFにしてるひと
なんてほとんどいないでしょ。
厳密にやりたいならID・PASSWORDで認証
手間かけさせたくないならcookieだyo。
0848nobodyさん
02/06/25 12:03ID:wQ9fjJDEどうやって認識しているんだろう。
IP変わっても、ちゃんと認識できるんだよなぁ。
cookieでもなさそうだし。
0849nobodyさん
02/06/25 12:58ID:???監視カメラさ。
0850nobodyさん
02/06/25 13:30ID:???こんな感じでやってるんだけどもっといいやり方が在ると思うので。
$c = 0;
foreach(@list){
if($_ =~ /^Location_URL=.*/){
m/Location_URL=(.*)/;
$URI[$c] = $1;
$c++;
}
}
■ このスレッドは過去ログ倉庫に格納されています