سؤال

لقد ترحزت للتو من PHP 5.2.3 باستخدام PHP5isapi.dll إلى PHP 5.3.0 باستخدام Fastcgi و PHP-CGI.EXE. على هذا الموقع، لدي خطاف للحصول على مصادقة 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.

هذا عمل رائعا فقط تحت PHP 5.2.3 مع ISAPI. الآن بعد أن انتقلت إلى Fastcgi على IIS6، يتم كسره. إنه يعمل من أجلي، لكن لدي مسؤول على الخادم. أولئك الذين ليسوا مسؤولين (معظم الناس) يرون بعض البديل مما يلي:

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 الفعلي.

أي خيوط؟

هل كانت مفيدة؟

المحلول

بعض التقدم، ولكن لا يوجد حل حقيقي حتى الآن.

  1. بعد النصيحة هنا كانت مفيدة: مستندات fastcgiخاصة توصيات الأمن الجزء. حصلت على أخطائي من FastCGI 500 وإلى سجل خطأ PHP.

  2. يبدو أن PHP / IIS / FastCGI يريد الوصول إلى دليل الجلسة (الألغام C: PHP Session) عبر أي محاولات المستخدم للمصادقة بدلا من مستخدم Anon.

  3. إعداد أذونات "تعديل" على هذا المجلد إلى "جميع المستخدمين" يسمح للموقع بالعمل حسب الرغبة. ومع ذلك، فأنا أتساءل بعد ذلك كيف كبيرة من حفرة الأمان التي أخلقها عن طريق القيام بذلك ...

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top