私はPHPにIIS 7.5を介してFastCGIを介して最新バージョンをインストールしています。そして 説明 のすべてはFastCGIが設定によるクライアントの呼び出し
fastcgi.impersonate = 1
私のウェブサイトにこの設定がある場合
なぜ偽装したいのですか?
私はASP.NETのバックグラウンドで、IUSRは読み取り専用のアクセス許可を取得し、アプリケーションプールIDはすべての書き込みアクセス許可を取得しています。 IUSRへの書き込みアクセス権を付与すると、通常、WebDAVの脆弱性への扉が開かれます。したがって、私はPHPをIUSRとして実行することをためらっています。
13か月後、自分自身の質問を再確認したいと思いました。その間に、私はIIS 6からIIS 7.5に)の6のウェブサイトを転送し、私の好みの方法でそれらを構成しました。動作し、セキュリティ上の問題はありません(これらは人気のあるサイトではありません)。私の意見では、設定はlearn.iis.netが推奨するものよりも安全です。
後世のために、関連する設定を以下に示します。 PHP INI:
cgi.force_redirect = 0
cgi.fix_pathinfo=1
fastcgi.impersonate = 0
IISの場合:
NTFSアクセス許可とそれらを適用する場所:
move_uploaded_file
はアップロードディレクトリの権限を保持するためです。これは、私が見つけたこの権限設定の最大の欠点です。IIS AppPool\<<YourApplicationPoolName>>
)-読み取りとリストの付与upload_tmp_dir
、session.save_path
、error_log
など)。これが、learn.iis.netの指示が理想的でないと判断した人にとって役立つことを願っています。
参照: http://www.php.net/manual/en/install.windows.iis6.php
偽装とファイルシステムアクセス
IISを使用する場合は、PHPでFastCGI偽装を有効にすることをお勧めします。これは、php.iniファイルのfastcgi.impersonateディレクティブによって制御されます。偽装が有効な場合、PHPは、IIS認証によって決定されたユーザーアカウントに代わってすべてのファイルシステム操作を実行します。
ドキュメントごとに、fastcgiがクライアントに代わってすべて同じ権限を使用することを許可します(この場合、IUSRアカウントのようになります)。言い換えると、クライアント(または匿名)自身の資格情報に対して通常許可されているすべてのアクションを実行することです。それ以上でもそれ以下でもありません。このセットがないと、貧しいfastcgiが機能しなくなると思います。