1

PHP ファイル フォルダーとは別のフォルダーにあるファイルの内容を置き換えようとしていますが、「ストリームを開くことができませんでした。許可が拒否されました」というエラーが表示されます。

put_file_contents 関数を使用してファイルの内容を変更しています。この問題の解決策をオンラインで検索したところ、ファイル ディレクトリへの書き込みは所有者/ユーザーのみに許可されていることがわかりました。filezilla (ftp) でディレクトリのプロパティを確認したところ、ディレクトリがグループまたはパブリックによって書き込み可能ではないことがわかりました。

filezillaで、ディレクトリを公開で書き込みできるようにしてみたところ、phpファイルがフォルダのファイルに書き込めるようになりました。

したがって、アクセス許可をディレクトリではなくファイルのみに簡単に設定し、アクセス許可をパブリックに書き込み可能に設定することでそのコンテンツを簡単に置き換えることができると思います。所有者/グループ/公開オプションの意味がわかりませんが? これは、有料ドメイン ホストでホストされている Web サイトの Web サーバーであると想定されているため、パブリック書き込みオプションが安全かどうか、または単一の Web サイトのみをホストする Web サーバーにユーザー グループが存在する理由がわかりません。

Web サーバーの内容を変更できるのは php ファイルだけなので、Web サーバーに public オプションが提供されているのはなぜですか? アップロード用の場合は、アップロード ページがサーバー上に存在することも意味します。ftp や cpanel で端末にアクセスできないため、chmod などを実行できません...

公開書き込み権限を持つファイルのセキュリティ リスクについて、誰か詳しく教えてください。

4

1 に答える 1

0

サーバーは、他のサーバーと同様にコンピューターです。これは、複数のユーザーを作成できること、および多くのことが発生する可能性があることを意味します。

お使いのサーバーは必ずしも Web サーバーだけであるとは限りません。明らかに、これは FTP サーバーでもあり、おそらく ssh を使用してアクセスすることもできます。将来的には、別の目的で使用する場合があります。

いずれにせよ、それを単に Web サーバーとして使用する場合でも、フォルダーのパーミッションをすべてのユーザーに書き込み可能に設定することは危険です。これは、コードが必然的に持つセキュリティ リスクのためです。セーフガードとして機能します。将来危険なことを書いたとしても、それは損害を含みます。

これが、一部のシステムで、http 要求の処理を担当するソフトウェア (通常は Apache) が特定のユーザー httpd として実行される理由です。

ユーザーグループは、その名の通り、定義されたユーザーのグループです。オンラインで簡単に読むことができます。

于 2016-08-28T09:37:29.793 に答える