web-dev-qa-db-ja.com

777の権限を削除することがなぜそれほど重要なのですか?

PHP Webアプリのインストーラーを作成しています。ユーザーはいくつかのファイルとディレクトリ(config.php、cache、uploads、.htaccess)のアクセス許可を777に変更する必要があります(多くのアプリケーションで、インストーラーがユーザーに(config.phpなどの)アクセス許可を644に戻す必要があることを確認しました。

なぜそんなに重要なのですか? 777のままにできないのはなぜですか?ある種のセキュリティ上の懸念があると思いますが、これらのファイルを書き込み可能のままにすると、正確に何が起こる可能性がありますか?

3
radex

PHPスクリプトはWebサーバーで実行されます。権限をそのままにしておくと、Webサーバーユーザーになります(www-dataまたはApache)これらのファイルに書き込むことができます。スクリプトにバグや脆弱性がある場合、これらのアクセス許可により、Webサーバー(したがって外部エージェント)がファイルとファイルシステムの内容を変更できるようになります。起こりうること:

  • すべての喪失(書き込み権限はファイルを削除する権限でもあります)。
  • 不要なものの追加:一部の攻撃は、悪意のあるスクリプト、偽のページ、フィッシングやスパムのスクリプトなど、サイトにデータを追加することを目的としています。 Webサーバーはファイルシステムにファイルを書き込むことができるため、権限があればどこにでもデータをアップロードできます。

だから、ええ、その状態に許可を残すのは恐ろしい考えです。

7
coredump

777は特に悪いです。つまり、誰でもファイルを削除したり作成したりできます。私はファイルを作成します、あなたはそのファイルを削除します。

必須 777を使用し、次に1777を使用する場合-これは、ファイルの所有者のみにファイルの削除を許可するようにOSに指示します。

それ以外の点では、coredumpが言ったとおりです。新しいファイルを書き込んだり既存のファイルを上書きしたりできるスクリプトのバグにより、Apache/nobody/www-としてファイルを上書き/作成するため、Webサーバーに対してやりたいことが何でもできます。データの場合、Webサーバーは元のコンテンツではなく悪意のあるコンテンツを提供します。

理想的には、このような問題を回避するために、Webサーバープロセスは読み取り元のディレクトリに書き込むことができません。

4
chris

そのサーバー/ワークステーションの他のユーザーはファイルを変更できます。たとえば、デスクトップUbuntuを使用して/ home 777を作成すると、任意のユーザーが削除または変更できます。

777は、共有ホスティングを使用している場合は特にセキュリティリスクがあります。

0
David Ranchero

そのディレクトリに(たとえばftp経由で)アクセスできる人は誰でも、それらを読み取り、書き込み、実行できます。開発者として、使用意図のシナリオを実行し、潜在的なセキュリティホールを閉じる必要があります...

0
udo