2009-08-24 11 views
3

Je viens de migrer de PHP 5.2.3 en utilisant php5isapi.dll à PHP 5.3.0 en utilisant FastCGI et php-cgi.exe. Sur ce site, je crochets pour Windows/NTLM/authentification http faire quelque chose comme ceci:L'authentification HTTP est-elle possible avec PHP sur IIS FastCGI?

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. 

Cela a tout simplement génial en PHP 5.2.3 avec ISAPI. Maintenant que je suis passé à FastCGI sur IIS6, il est cassé. Cela fonctionne pour moi, mais j'ai l'administrateur sur le serveur. Ceux sans administrateur (la plupart des gens) voient une variante de ce qui suit:

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) 

J'ai essayé fendant la documentation et les fichiers journaux, mais ne peut pas sembler faire des progrès. Je ne veux pas que le nom d'utilisateur distant soit utilisé pour accéder à mes fichiers .php, je veux juste saisir le nom et correspondre à ma base de données. L'utilisateur anon devrait toujours être celui qui fait l'exécution php réelle.

Des fils?

Répondre

0

Certains progrès, mais pas de solution réelle pour le moment.

  1. Suivant les conseils ici est utile: FastCGI Docs Surtout la section Recommandations de sécurité. Cela a eu mes erreurs sur FASTCGI 500 et dans le journal des erreurs PHP. Il semble que PHP/IIS/FastCGI veut accéder au répertoire de la session (le mien est C: \ PHP \ Session) via n'importe quel utilisateur qui tente de s'authentifier au lieu de l'utilisateur anon.

  2. La définition des autorisations "Modifier" sur ce dossier sur "Tous les utilisateurs" permet au site de fonctionner comme vous le souhaitez. Cependant, je me demande alors quelle taille d'un trou de sécurité je crée en faisant ceci ...