
Linux 共有ホスティング マシンに Web アプリがあります。ファイルと.htpasswd
、データベース パスワードを保存する構成がいくつかあり、一般に、脆弱性を探すためにソース コードを覗き見されることは望ましくありません。
Web サーバー (apache) には、上記のファイルへの読み取りアクセス (場合によっては書き込みアクセス) が必要です。ただし、同じ共有ホスト上の他のユーザーにアクセスを許可したくありません。
これがどのように機能するのか、私にはよくわかりません。ここ似ていますが、Web アプリが誤ってパスワード ファイルをホストするのを防ぐことに重点を置いているようです。
私の知る限り、私が扱わなければならないのは基本的な Linux 権限だけです。あるサーバーでは、Apache の「その他」権限を与えることが求められています。その後、他のすべてのユーザーが属するグループ権限を削除すると、それらのユーザーのアクセスが拒否されます。これはかなり回りくどいようです。別のサーバーでは、グループ権限のみが設定されたnobody
グループが設定されています。public_html
懸念されるのは、Apache ユーザーが自分のファイルにアクセスできる場合、別のユーザーがアクセスできるように簡単なスクリプトを作成して実行できるということです。
<?php
header("Content-Type: text/plain");
include $_GET['f'];
?>
TLDR: Apache がソース ファイルとパスワードにアクセスできるようにする必要がありますが、同じマシン上の他のユーザー (もちろん管理者を除く) がアクセスできるようにする必要はありません。
一般的な設定とは何ですか?
関連する質問:
答え1
グループを作成し、apache/www-data をグループに追加します。次に、次の手順を実行します。
chown -R apache:グループ名 /var/www/mywebapp/ && \ chmod -R 640 /var/www/mywebapp
これにより、所有者には読み取りと書き込み (6)、グループには読み取り (4) の権限が与えられ、フォルダとすべてのサブディレクトリおよびファイルに対する権限が与えられます。Apache ユーザーは、所有者と同様にファイルにアクセスできますが、他のユーザーはアクセスできません。他のユーザーが Apache ユーザーに su できないようにする必要があります。
フォルダー レベルでアクセスを制限するには、vhost 構成のディレクトリ ブロックを使用します。 http://httpd.apache.org/docs/2.0/misc/security_tips.html#サーバーファイルの保護を参照 http://www.anchor.com.au/hosting/dedicated/Security_Hardening_of_an_Apache_Virtual_Host