- ベストアンサー
CGIのちょっとしたこと
CGIをいろいろと実験しているのですが、わからないことが2点あります。ローカルな環境で実行しています。 1.データファイル(実行ファイルではない)の拡張子なんですが、data.datとかdata.cgiとかありますよね。セキュリティ的にはcgiの方が安全なんですか?.datだとエディッタで中身がみれてしまうので・・。 2.実行ファィル内にパスワードを記述することがありますよね。そこで、実行形式のprogram.cgiファイルの中身をみられてしまうことがあるのでしょうか?rootにはみられてしまうかもしれないが、通常のユーザーがファイルのソースコードをみれてしまうということはないのでしょうか。私は多分みれないと思うのですが、特殊なソフトウェアなどが存在したりしますか。 3.実行から10秒後にファイルを作成するプログラムがあったとして、このプログラムを実行した直後にブラウザを閉じたとします。しかし、10秒後にはちゃんとファイルが作成されています。ブラウザを閉じてしまってもプロセスは残るものなのでしょうか。 ※プログラムはすべてブラウザで実行しています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
あまり最近の話は知らないので,参考までに. ちょっとこったことをホームページでやらせたい場合, CGIとかSSL,JAVA,JAVAスクリプトなどあります. ほかにもあるかもしれません. この中で,「CGI」や「SSL」というのは,ホームページのサーバ側で実行してしかけを入れるものです. これに対して,JAVAやJAVAスクリプトはサーバからブラウザ側へプログラムをダウンロードし,ブラウザ側が実行するものです. サーバ側で実行すると,アクセスが集中したときに追いつかないので,JAVAなどの方がいいんだろうなとは個人的には思いますが,私自身はつかったことはありません. ということで, >※プログラムはすべてブラウザで実行しています。 この部分わからなかったのですが.CGIなら,プログラムはサーバ側で実行されると思います. サーバとブラウザが同一のマシン上で動いていると言うことですか? サーバのアプリとブラウザのアプリを同一のマシン上で別々に独立に動かすことは出来ますので. 3.については,CGIプログラムはサーバ側で動いていますので,ブラウザを閉じても残るかもしれません. 1.については,すでにご回答のようにどちらにしてもエディタで開くことは出来ます.exeファイルだってエディタで開くことはできます. 問題は,「可読性」です.中身がテキスト形式で人間が読めてしまえるものだったり,VISA XXXX-XXXX-XXXXなどとそれっぽい番号が埋め込まれていれば気づく人は気づきます. セキュリティーについては,暗号化すれば良さそうですが,このへんは詳しいことは知りません. CGIの言語はPerlですか? ご質問の感じからだと,Unixぽいですが. シェルスクリブトかもしれませんね. エディタで読めてしまえる 「実行形式のprogram.cgi」ということですので. 私は,windowsなのでexe形式で作っています. CGIにもいろいろあるのでもう少し処理系など補足された方がいいかと思います.
その他の回答 (2)
- shige_70
- ベストアンサー率17% (168/946)
1. cgiを含むWebコンテンツ関連のファイルを置く場所は決まっていますが、cgiから読み書きするデータファイルは別の場所においてもかまわないので、そういうところに置けばブラウザからは見えません。 データファイルを.cgiにするのはたしかにブラウザからは見れなくなりますが、誤って実行されてしまうこともありえない話ではないですから、おすすめできません。意味的にもおかしいですし。 ただし、ローカルでブラウザを通さないで見る場合は名前や置き場所を変えてもセキュリティ上なんの効果もありません。 2. 実行ファイル内にパスワードを埋め込むのは良い方法ではありません。別のファイルにしましょう。 まあ、これもやはりローカルではどちらにしても見るのは簡単ですから同じです。 ですから、いずれにしても暗号化する必要があるでしょう。 3. ブラウザとの接続が切れてもcgiは動き続けます。
- shy00
- ベストアンサー率34% (2081/5977)
とりあえず1,2のみ・・・ 1.拡張子がCGIでも、エディタで見れますよ セキュリティを考えるのでしたら「data」というファイル名は使わない方がいいでしょう 2.よほどの事がない限りは見れないと思います 心配でしたら、パスワードは暗号化することお勧めします