書き出しファイルのパーミッションを 666 や 777 にしても安全でしょうか?

「すぐ使えるCGI」製品のご利用にあたっては、CGI からのファイル書き込みを行うためファイルやディレクトリに CGI ユーザでの「書き込み権限」が必要です。

サーバによってはこの設定を「誰でも書き込める」(=パーミッションが 606、666、757、777 など)にする必要がありますが、この場合の安全性についてご説明します。

「666」や「777」の安全性について

書き込みファイルやディレクトリのパーミッションを「666」「777」等としなければ動作できない場合の安全性について説明します。

専用サーバ・準専用サーバ(VSP)の場合

専用サーバや準専用サーバをお使いの場合、(適正に管理されていれば)「サーバ内には悪意のある他人はアクセスできない」という前提がありますので、パーミッションが 666 であっても特にセキュリティ上の問題はありません。

※ なお、アクセス権限を持つ方の作業ミスや故意の削除などは避けられません。

FTPアクセスのみで、自分のディレクトリしか見えない場合

共用サーバでも、

・FTPアクセスのみしかできず
・FTPソフトで最上位階層にまで上がっても自分のファイルしか見えない

という場合、他のユーザからも自分のファイルを見ることはできませんので、この場合もまず安全です。

ただし、可能性として以下のような危険性はあります。

・同じサーバを利用している(悪意のある)ユーザが
・お客様も同じサーバを利用している事を知って
・お客様の公開サイトのURLからファイルの位置を類推して
・自分のウェブ領域内でCGIなどを実行してお客様のファイルを削除、改変、閲覧する

URLからホスト名やユーザ名が分かってしまう場合( /~username/ 形式のURLの場合など)は(かなり稀だと思いますが)多少の危険はあると言えます。

公開しているURLが独自ドメイン名のものであれば、心配する必要はあまりありません。

FTPアクセスで最上位階層まで見える、または telnet などでアクセスできる場合

共用サーバで、

・FTPソフトでアクセスすると /usr/ や /etc/ といったディレクトリ内が見えてしまう
・telnet などでアクセスして他のユーザのディレクトリが見える

という場合、これはあまり安全な環境ではありません。

自分のファイルでなくてもパーミッションがあれば読み書き、削除できますので、こういった環境でパーミッションが 666 などのファイルを設置しておくのは、改変、削除される危険性が伴います。

このようなサーバでの「すぐ使えるCGI」製品のご利用はお勧めできません。

参考:「誰でも書き込める」設定が不要なサーバ

CGI のパーミッションが「700」で動作するサーバは、書き込みファイルのパーミッションも「600」や「755」など、「自分だけが書き込み可能」な設定で動作が可能です。この場合、他人からの書き換えの心配が無いので安全です。

補足情報

CGI の推奨パーミッションが「755」のサーバの場合、マニュアルでは書き込みファイルやディレクトリのパーミッションとして「666」や「757」が推奨されていても、より安全な「600」「755」で動く場合もあります。パーミッション設定の際はまず「600」、「755」等で試し、エラーが出たら変更していくという方法がお勧めです。

関連記事

CGIのパーミッションに関する詳しい説明

基本のマニュアル インストール
CGI のパーミッションの解説。設定と、実際に許可される動作の説明。ファイルに対するパーミッション設定とディレクトリに対するそれの違いの説明。サーバによる設定の違いの説明。

広告