3

php5isapi.dllを使用してPHP5.2.3から、FastCGIとphp-cgi.exeを使用してPHP5.3.0に移行しました。このサイトには、次のようなことを行うwindows / ntlm/http認証用のフックがあります。

if(empty($_SERVER["REMOTE_USER"]))
{
 header("HTTP/1.1 401 Unauthorized"); 
 exit;
}
$winuser = $_Server["REMOTE_USER"];

//parse $winuser to make sure it is on my domain, and can login to the site.
//set a cookie specifying that this user is logged in
//redirect to site.

これは、isapiを使用したPHP5.2.3でうまく機能しました。IIS6でFastCGIに移行したので、壊れています。それは私のために働きます、しかし私はサーバー上に管理者を持っています。管理者がいない人(ほとんどの人)には、次のいくつかのバリエーションがあります。

FastCGI Error
The FastCGI Handler was unable to process the request. 
________________________________________
Error Details:
•   The FastCGI process exited unexpectedly 
•   Error Number: -1073741819 (0xc0000005). 
•   Error Description: Unknown Error 
HTTP Error 500 - Server Error.
Internet Information Services (IIS)

ドキュメントとログファイルを調べてみましたが、うまくいかないようです。.phpファイルにアクセスするためにリモートユーザー名を実際に使用するのは望ましくありません。名前を取得してデータベースと照合するだけです。anonユーザーは、実際のphp実行を行うユーザーである必要があります。

リードはありますか?

4

1 に答える 1

0

ある程度の進歩はありますが、実際の解決策はまだありません。

  1. ここでのアドバイスに従うことは役に立ちました:FastCGIDocs 特にセキュリティの推奨事項のセクション。これにより、私のエラーがFASTCGI500からphpエラーログに記録されました。

  2. PHP / IIS / FastCGIは、anonユーザーではなく、認証を試みるユーザーを介してセッションディレクトリ(私の場合はC:\ PHP \ Session)にアクセスしたいと考えているようです。

  3. そのフォルダの「変更」権限を「すべてのユーザー」に設定すると、サイトは希望どおりに機能します。しかし、私はこれを行うことによって私が作成しているセキュリティホールの大きさを疑問に思っています...

于 2009-08-24T22:38:29.150 に答える