وبلاگ نت‌آرامآموزش، تجربه و راهکارهای زیرساخت

چرا فایل PHP به‌جای اجرای سایت دانلود می‌شود؟ رفع مشکل و حفاظت از اطلاعات

تشخیص اشتباه پردازش PHP در وب‌سرور، محافظت از فایل‌های حساس و بررسی تنظیم دامنه و کنترل پنل.

انتشار:
توسط تیم فنی نت‌آرام
۵ دقیقه زمان مطالعه
۰ دیدگاه
محتوای تخصصی، ساده و کاربردی
هماهنگ با هویت حرفه‌ای نت‌آرام
بازگشت به لیست مقالات
تصویر شاخص مقاله چرا فایل PHP به‌جای اجرای سایت دانلود می‌شود؟ رفع مشکل و حفاظت از اطلاعات در وبلاگ نت‌آرام
محتوای آموزشی وبلاگ نت‌آرام
آدرس سایت را باز می‌کنید، اما مرورگر به‌جای نمایش صفحه یک فایل با پسوند PHP دانلود می‌کند. در حالت عادی وب‌سرور باید کد PHP را برای اجرا به پردازشگر مناسب بسپارد و نتیجه را به مرورگر بدهد. دانلود شدن فایل می‌تواند نشانه تنظیم اشتباه این مسیر باشد.
اول امنیت را جدی بگیرید: اگر محتوای کد به بازدیدکننده رسیده باشد، ممکن است اطلاعات حساس داخل بعضی فایل‌ها نیز در معرض قرار گرفته باشند. فایل دانلودشده را برای کسی نفرستید و محتوایش را در گروه عمومی منتشر نکنید. تا وقتی مسیر ناامن بسته نشده، بررسی را با مدیر هاست هماهنگ کنید.

قدم اول: دسترسی ناخواسته را محدود کنید

از مدیر سرور یا پشتیبانی میزبان بخواهید موقتاً دسترسی عمومی به مسیر آسیب‌دیده را با روشی مناسب وب‌سرور محدود کند. صفحه خطای امن یا محدودسازی در لایه‌ای که واقعاً جلوی دسترسی مستقیم به فایل را می‌گیرد، می‌تواند برای زمان رفع اشکال مناسب باشد. اگر CDN یا پراکسی دارید، بررسی کنید آیا آدرس مستقیم سرور اصلی نیز در معرض است؛ محدودسازی صرفاً در یک لایه همیشه کافی نیست.
فایل‌های سایت، پایگاه داده و تنظیمات را حذف نکنید. زمان شروع مشکل و نام دامنه و مسیر را ثبت کنید. اگر شواهد نشان می‌دهد فایل دارای رمز، کلید یا تنظیمات محرمانه قابل دریافت بوده است، پس از مهار دسترسی با مدیر امنیت درباره چرخش رمزها و کلیدهای در معرض و بررسی لاگ‌ها اقدام کنید. تعویض رمز بدون بستن مسیر افشا کافی نیست. از سوی دیگر، دانلود یک فایل نمونه به‌تنهایی ثابت نمی‌کند همه فایل‌های محرمانه دانلود شده‌اند؛ بررسی باید بر اساس شواهد انجام شود.

قدم دوم: مشخص کنید مشکل کجا رخ می‌دهد

این سؤال‌ها به جداکردن علت کمک می‌کنند:
  • فقط یک دامنه یا زیر‌دامنه مشکل دارد، یا همه سایت‌های همان سرور؟
  • مشکل پس از انتقال سایت، تغییر نسخه PHP یا ویرایش فایل تنظیمات آغاز شد؟
  • مرورگر فایل را از دامنه اصلی می‌گیرد یا پس از تغییر مسیر به نشانی دیگری می‌رود؟
  • آیا از طریق CDN و مسیر مجاز مستقیم سرور نتیجه متفاوت است؟ آزمون مستقیم باید فقط با اجازه مدیر و بدون آشکارکردن محتوای حساس باشد.
اگر فقط یک فایل یا یک پوشه رفتار متفاوت دارد، تنظیم اختصاصی همان مسیر را هم بررسی کنید. وب‌سرور ممکن است برای مسیرهای مختلف تنظیم جدا داشته باشد. تفاوت پسوند نام، آدرس وب و پوشه واقعی فایل نیز مهم است.

قدم سوم: نسخه و پردازشگر PHP همان دامنه را بررسی کنید

در هاست cPanel، بسته به امکانات حساب، به Software ← MultiPHP Manager بروید و دامنه درست را انتخاب کنید. نسخه PHP مؤثر را با نسخه‌ای که سایت و افزونه‌های آن پشتیبانی می‌کنند مقایسه کنید. تغییر نسخه می‌تواند روی سازگاری سایت اثر بگذارد؛ پیش از اعمال، نسخه فعلی و تنظیمات را ثبت و در صورت امکان روی نسخه آزمایشی امتحان کنید. در کنترل‌پنل‌های دیگر نام منو و روش اجرا فرق دارد.
در برخی پیکربندی‌های Apache و cPanel، خط AddHandler یا SetHandler نادرست در فایل .htaccess می‌تواند باعث دانلود فایل شود. راهنمای رسمی cPanel این حالت را شرح می‌دهد. اما همه سرورها از همین روش استفاده نمی‌کنند؛ Nginx، LiteSpeed و تنظیمات سرویس‌دهنده ممکن است مسیر متفاوتی داشته باشند.
از File Manager پنل، در صورت داشتن دسترسی، فایل .htaccess مربوط به ریشه همان دامنه را ببینید. ممکن است لازم باشد گزینه نمایش فایل‌های مخفی را فعال کنید. یک نسخه پشتیبان از فایل نگه دارید و خطوط مربوط به handler را با تنظیم رسمی سرور مقایسه کنید. کل فایل را کورکورانه حذف یا تغییر نام ندهید؛ ممکن است قواعد امنیتی، مسیرها و محدودیت‌های سایت در آن باشد. اگر نمی‌دانید کدام خط مؤثر است، از مدیر هاست بخواهید تغییر هدفمند انجام دهد.
در سرور اختصاصی یا VPS، مدیر باید پیکربندی وب‌سرور و PHP-FPM یا handler واقعی همان سایت، وجود نسخه مربوط و دسترسی میان آن‌ها را بررسی کند. پیش از بارگذاری تنظیم جدید، آزمون صحت پیکربندی مربوط به همان وب‌سرور و برنامه بازگشت لازم است. نصب یک ماژول تصادفی یا بازکردن همه دسترسی‌ها ممکن است مشکل و ریسک تازه ایجاد کند.

قدم چهارم: با فایل آزمایشی بی‌خطر نتیجه را بسنجید

آزمایش را ابتدا در محیط جداگانه یا مسیری که دسترسی‌اش برای عموم محدود است انجام دهید. مدیر سایت می‌تواند یک فایل موقت بدون رمز و داده واقعی بسازد که فقط عبارت ثابتی چاپ کند:
کد / دستور<?php echo 'PHP_TEST_OK';
این کد فقط یک متن آزمایشی دارد. پس از قرار دادن آن در محل آزمون مجاز، اگر مرورگر فقط متن PHP_TEST_OK را نشان دهد، PHP برای همان مسیر اجرا شده است. اگر خود فایل یا کد دانلود شود، پردازش آن مسیر هنوز درست نیست؛ دسترسی عمومی را باز نکنید. نام، مسیر و نتیجه آزمایش را برای مدیر ثبت و فایل موقت را بعد از آزمون حذف کنید.
از قرار دادن phpinfo() در مسیر عمومی خودداری کنید؛ می‌تواند اطلاعات پیکربندی را آشکار کند. موفقیت فایل آزمایشی نیز به معنی سلامت همه زیردامنه‌ها و فایل‌های سایت نیست.

بعد از اصلاح، چه چیزهایی را بررسی کنیم؟

مدیر باید صفحه اصلی، چند مسیر PHP و پیشخوان را از مسیر مجاز آزمایش کند، مطمئن شود کد منبع دانلود نمی‌شود و پاسخ‌ها عادی‌اند. تنظیمات امنیتی، تغییر مسیرها و سرویس‌های دیگر را نیز پس از تغییر handler بررسی کنید. اگر CDN قبلاً پاسخ اشتباه را نگه داشته، پس از رفع علت اصلی کش مربوط را با روش کنترل‌شده پاک کنید و دوباره از بیرون بیازمایید.
در هاست وردپرس نت‌آرام، اگر به تنظیمات سرور دسترسی ندارید، زمان، دامنه و نتیجه آزمون بی‌خطر را از مسیر پشتیبانی ارسال کنید. رمز، محتوای فایل پیکربندی و فایل دانلودشده را در پیام عمومی نفرستید.
اشتراک‌گذاری:
لینکدینتلگرامایکس
مقاله قبلی
مقاله قبلی وجود ندارد.

دیدگاه‌ها (۰)

دیدگاه‌های تاییدشده و پاسخ‌های تیم نت‌آرام