• ベストアンサー

パーミッションについて

perlで作成されたcgiプログラムを修正しているのですが、 不明な点があるので教えてください。 apacheの実行アカウント:nobody test.csvファイルのユーザ、グループ:user1.user1 test.csvファイルのパーミッション:644 下記のようなプログラムで、テキストボックスに入力した文字を "test.csv"ファイルに保存しようと思うのですが、そのままでは 権限がないので保存できません。 open(OUT,">test.csv") test.csvのパーミッションを、646などにすれば保存できるのですが ちょっとセキュリティ的に問題があるような気がします。 安全にファイルを保存するには上記のような方法がベストなのでしょうか? 他に推奨される方法があれば教えてください。

  • Perl
  • 回答数3
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
  • taseki
  • ベストアンサー率66% (155/233)
回答No.1

どのようなサーバーか判りませんが、データファイルのパーミッションは604など、特に必要がなければ「グループ」に権限を与えない方が安全です。たとえば共有サーバーを借りている場合など。 また、DocumentRootつまりインターネット上に公開されるエリアにデータファイルを保存しない方がいいです。たとえば公開されるエリアが home/user/public_html 以下である場合、データファイルなど、スクリプトがアクセスするだけでファイル自体を公開する必要がなければ、 home/user/bbs_data/test.csv などに保存します。

その他の回答 (2)

回答No.3

・サーバー設定も変えられない、 ・Webに公開されていないフォルダを利用できない ・test.csvの拡張子は変更不可 ということでしたら、ユーザーの書き込み権限は必要ですね…… せめてもの対策として、.htaccessを使って拡張子csvをブラウザから見られないようにブロックするのをおすすめします。

参考URL:
http://allabout.co.jp/career/database/closeup/CU20021101/
noname#25358
noname#25358
回答No.2

 ブラウザからCGIを動かす場合、通常は nobody での実行となりますので、残念ながら1の位は必ず6でなければいけません。  その代わり、拡張子を .cgi にすることで、中身を第三者が直接見えなくすることはできます。

関連するQ&A

  • suEXECとパーミッションの関係がわかりません

    ホームページ作成初心者です。 (A) suEXECについて http://www.aconus.com/~oyaji/www/apache_linux_suexec.htm では、 ----------------------- なお、CGI 関係以外のファイル( HTML や GIF 等)の扱いは、従来どおり "644" 等としないと見えません。suEXEC はあくまで CGI や SSI の実行に関してのみ機能するものだからです。 ----------------------- 一方 http://tech.bayashi.net/pdmemo/permission.html では、 ----------------------- 拡張子が .html などの HTML ファイル ==> 600 ----------------------- となっています。 600では一般のサイト訪問者がread出来ない様に思えるのですが、問題ないのでしょうか? suEXEC設定がされているサーバーでは、各拡張子のパーミッションはどのように設定すれば良いのか教えてください。 (B) http://tech.bayashi.net/pdmemo/permission.html の ------------------------------- ■UNIX + Apache サーバで nobody権限の場合 UNIXのApacheは通常 nobody権限で実行され ■UNIX + Apache サーバで SuExec環境の場合 SuExec環境では、Apacheがユーザ(オーナ)権限で実行されます。 ------------------------------- 上記のApacheの nobody権限、ユーザ権限、オーナ権限 というのは FTPソフトでパーミッションを設定するときの オーナー権限、グループ権限、ユーザ権限 とは全く関係のない別物なのでしょうか? 特にnobody権限とは何でしょうか? -------------------- ファイルの読み書きもnobody権限しかありません。なので、パーミッションでも第三者に対する許可が必要です -------------------- ↑が何を言っているのか理解できません。 (A)(B)について教えてください。

    • ベストアンサー
    • HTML
  • CGIのパーミッションについて??

    「10日で覚えるPerlCGI」という本を購入して 「ActivePerl」とWindows用の「Apache」をインストールしました。 使用しているOSはVistaです。ブラウザーはIEの(多分8か9)と GoogleCromeを使用しています。 Apacheのインデックス画面と他のHTML画面は 表示されるのですが、CGIを使用した画面が表示されません。 CGIの画面を表示させようとすると下記のメッセージが表示されます。 You don't have permission to access /tendays/1-1.cgi on this server 権限が関係しているのかと思い、 ドキュメントルートとCGIの置いてあるフォルダと、 Perlの置いてある場所の権限を全てフルコンにしました。 しかしながら、このメッセージは変化ありません。 下記がCGIの中身です。 -------------------------------- #! a:/perl/bin/perl print "Content-type: text/plain\n\n"; print "Hello Perl !"; -------------------------------- どのようにしたら、このCGIファイルをブラウザで表示できるようになるでしょうか。 どうぞ、よろしくお願いしいます。

  • パーミッション600でもブラウザからアクセス出来る

    いつもお世話になります。 1.FTPでtest.lzhというファイルをアップし、パーミッションを600にしたもの 2.perlで組んだファイルアップロードCGIを使ってtest.lzhを1と同様の場所にアップしたもの(perlでchmodで600に) ブラウザ上から1の場合はアクセス拒否されるのですが、2の場合は普通にアクセス出来てしまいます。 所有者が異なると、同じパーミッションでも違う動きをするのでしょうか? 2のケースでもアクセス拒否させる方法はあるのでしょうか? 基本的な考え方を間違えていたら済みません。 宜しくお願い致します。

    • ベストアンサー
    • Perl
  • CGIのパーミッションについて

    昨日はじめて自鯖を立てようと思い apache2にて鯖を立てました。 こちらの環境は OS:windowsXP server:apache2 + ActivePerl CPU:Pen4 3.0Ghz メモリ:1024MB CGIの勉強をしたく、アップローダーを設置することに しました。http://sugachan.dip.jp/download/uploader.php こちらのサイトのSn Uploaderというものです。 Cgiの1列目#!のperlパスを自分の環境の #!C:/Perl/bin/perl に変更し ホームディレクトリ下のcgi-binフォルダ下に設置しました。 http://localhost/cgi-bin/upload.cgiにアクセスし 動作を確かめようとしたのですが500エラーがでてしま います。ためしに他のCGIを用意し試しましたところ きちんと動作しました。Apacheのほうの設定はすんでいます。いまのところパーミッションを疑っているのですが、Windowsの場合パーミッションの設定がいらないと聞いたことがあるのですがどうなんでしょうか? もし設定が必要な場合、自鯖にFFFTP等のソフトで繋いでパーミッションの変更を行うことはできるのでしょうか。自鯖にFTPサーバがないと無理なんでしょうかね? 初心者な質問で申し訳ないです。もしFFFTP以外の方法でパーミッションの変更方法があるのでしたら是非おしえてください。日本語がわかりにくいところがあると思いますが疑問な点がありましたら言ってください。よろしくお願いいたします。

    • 締切済み
    • CGI
  • CSVファイルのパーミッションは?

    アクセス集計等のCGIで、CSVファイルを使用しています。 元になるデータと、吐き出されるデータはCSVファイルになっているんですが、サーバ上で上手く動きません。 ローカルでテストした段階では、データの読み込みも吐き出しも正常に動作しています。 なので、おそらくパーミッションの設定の問題だと思われるんですが…とりあえず、600・606.666と試してみたんですが、読み込みに失敗しているような感じです。 CSVのパーミッションは一般的に666が使われると思っていたんですが…。 複数のファイルから結果を出すような形なので、CSVファイルも個別に設定する必要があるんでしょうか? よろしくお願いしますm(__)m

    • ベストアンサー
    • CGI
  • パーミッションの指定

    CGIのファイルやホルダのパーミッションを変更したのですが。(フリーのCGIを修正中) ファイル等のパーミッションを最初から指定しておく構文は無いのでしょうか。 CGIの本を買って、勉強中ですので詳しくお願いします

    • 締切済み
    • CGI
  • TOK2のパーミッションについて

    下記のサイトの左側の列にある「新規登録(無料)」を押すと、パーミッションに関するメッセージが出ます。 http://www.thera-garden.com/ 【以下、メッセージ】 あなたの設置したCGIは何らかのエラーのため動作しません。 あなたの設置したCGIのスクリプトを以下の注意点に沿ってチェックしてください。 1.パーミッションはあっていますか? TOK2では各ユーザーの権限でCGIが動作します。 CGIのパーミッションは700です。 CGIを設置するディレクトリーのパーミッションは701で動作します。 パーミッションについての詳しい説明をお読みください。 それ以外の場合はFTPソフトなどでCGIファイルのパーミッションを正しく設定してください。 2.CGIで使用されるファイルのパスはあっていますか? あなたのディレクトリー(フォルダ)のフルパスは /home/member/あなたのアカウント/です。 3.配布されているCGIを設置する場合 配布されているままの状態(改造をしない)で設置してみてください。 ここで、質問ですが、ただ単に、新規登録をしたいだけなのに、パーミッションに関する調整が必要なのでしょうか? 何が起きているのか、さっぱり分からないので、ぜひ教えて下さい。

  • パーミッションの設定について

    初めまして、こんばんわ 今、自宅サーバーでpukiwikiを動作させています。 そこで、プラグインやユーザー認証等を使いたいのですが、 パーミッションの設定方法がよく分かりません。 pukiwikiを動作させる上で公式ページなどを参考にしましたが、 あまり要点をつかめず、迷走しております。 また、ユーザ認証などはパーミッションの設定は不要なのでしょうか? pukiwikiのパーミッションの設定方法をご指導いただいてもよろしいでしょうか? 自宅サーバーには、 Active Perl 5.8.8 Build 822 Apache HTTP Server 2.0.63 pukiwiki1.4.7 をインストールして動かしています。

    • 締切済み
    • PHP
  • パーミッションについて

    CGIを読み込もうとするとエラーが出ます。何が原因でしょうか?エラー内容を見る限りテンプレートファイルのパーミッションに問題があると思うのですが, 具体的にどうしたらエラーが解決されるでしょうか? CGIのperlへのパスをcygwinのperlへのパスにしています. ご存知な方, ご教授よろしくお願い致します. エラー内容 HTML::Template : template file C:/xampp/htdocs/work/template/test.txt does not exist or is unreadable. at /usr/lib/perl5/site_perl/5.8/cygwin/HTML/Template.pm line 1615

    • 締切済み
    • CGI
  • Permissionについて

    あるCGIを試用させていただいているのですが お客様から登録された情報が少したつと消えてしまうので困ってます・・。 パーミッションの記述で下記1(お借りしているCGIサイトの説明)と下記2(UPしたサーバーの説明)が違うのでどのように変更すればいいのか教えて下さい。よろしくお願いします。 あと、パーミッションの問題以外で考えられることはありますか?何卒宜しくお願いします。 --1--- ba**er_** (フォルダ)[755] -  set.cgi [755]         in.cgi [755]         send.cgi [755]         ip.dat [666]          ba**er.dat [666]          jcode.pl [644]         mimew.pl [644]   lock(フォルダ) [777] ----2---- CGIホームページご利用方法 WWWサーバについて CGIサーバ cgixx.******.or.jp には、Apache を使用しております。 Permissionについて CGIのPermission(アクセス権)については、FTPで転送された際に、604(-rw----r--)となります。FTPのchmodで、704(-rwx---r--)に変更して下さい。 また、ディレクトリに関しては、FTPで転送された際に、705(drwx---r-x)となります。ディレクトリ内にCGIを設置する場合、そのディレクトリのPermissionは、705(drwx---r-x)のままにして下さい。777(drwxrwxrwx)に変更すると、そのディレクトリ内のCGIが動作いたしませんので、ご注意下さい。 尚、本サーバにおいては、お客様のCGIは、お客様のアカウント権限で実行されます。

    • 締切済み
    • CGI

専門家に質問してみよう