こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

パーミッションについて

perlで作成されたcgiプログラムを修正しているのですが、
不明な点があるので教えてください。

apacheの実行アカウント:nobody
test.csvファイルのユーザ、グループ:user1.user1
test.csvファイルのパーミッション:644

下記のようなプログラムで、テキストボックスに入力した文字を
"test.csv"ファイルに保存しようと思うのですが、そのままでは
権限がないので保存できません。
open(OUT,">test.csv")

test.csvのパーミッションを、646などにすれば保存できるのですが
ちょっとセキュリティ的に問題があるような気がします。

安全にファイルを保存するには上記のような方法がベストなのでしょうか?
他に推奨される方法があれば教えてください。

投稿日時 - 2005-07-22 14:46:42

QNo.1530718

困ってます

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

どのようなサーバーか判りませんが、データファイルのパーミッションは604など、特に必要がなければ「グループ」に権限を与えない方が安全です。たとえば共有サーバーを借りている場合など。

また、DocumentRootつまりインターネット上に公開されるエリアにデータファイルを保存しない方がいいです。たとえば公開されるエリアが
home/user/public_html
以下である場合、データファイルなど、スクリプトがアクセスするだけでファイル自体を公開する必要がなければ、
home/user/bbs_data/test.csv
などに保存します。

投稿日時 - 2005-07-22 15:10:12

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

・サーバー設定も変えられない、
・Webに公開されていないフォルダを利用できない
・test.csvの拡張子は変更不可

ということでしたら、ユーザーの書き込み権限は必要ですね……

せめてもの対策として、.htaccessを使って拡張子csvをブラウザから見られないようにブロックするのをおすすめします。

参考URL:http://allabout.co.jp/career/database/closeup/CU20021101/

投稿日時 - 2005-07-27 14:12:23

ANo.2

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

投稿日時 - 2005-07-22 15:15:39

あなたにオススメの質問