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

جلوگیری از اجرای PHP در uploads وردپرس؛ تنظیم هدفمند

مسدود کردن اجرای PHP در پوشهٔ آپلود می‌تواند یک لایهٔ دفاعی باشد. تعمیم همان قانون به همهٔ پوشه‌های افزونه و قالب، بعضی قابلیت‌های سایت را خراب می‌کند.

انتشار:
آخرین ویرایش:
توسط مصطفی جانقربان
۴ دقیقه زمان مطالعه
۰ دیدگاه
محتوای تخصصی، ساده و کاربردی
هماهنگ با هویت حرفه‌ای نت‌آرام
بازگشت به لیست مقالات
تصویر شاخص مقاله جلوگیری از اجرای PHP در uploads وردپرس؛ تنظیم هدفمند در وبلاگ نت‌آرام
محتوای آموزشی وبلاگ نت‌آرام
پوشهٔ uploads وردپرس معمولاً محل عکس‌ها و فایل‌هایی است که از بخش رسانه بارگذاری می‌کنید. این فایل‌ها باید نمایش داده شوند؛ لازم نیست مثل کد اصلی سایت اجرا شوند. اگر کسی از یک راه نفوذ، فایل PHP مخرب در همین پوشه قرار دهد، محدود کردن اجرای PHP می‌تواند یکی از مسیرهای سوءاستفاده را ببندد.
PHP کد برنامه‌هایی مثل وردپرس را روی سرور اجرا می‌کند. نسخهٔ آن باید با برنامه و افزونه‌های سایت سازگار باشد. نسخه‌ای که برای یک دامنه انتخاب شده، ممکن است با دامنهٔ دیگر یا خط فرمان سرور متفاوت باشد.
هدف این آموزش محدود کردن همان پوشهٔ uploads است. پوشه‌های plugins و themes کد افزونه‌ها و قالب را نگه می‌دارند و محدود کردن بی‌برنامهٔ آن‌ها ممکن است بخشی از سایت را از کار بیندازد. این تنظیم هم جای رفع راه نفوذ یا پاک‌سازی سایت آلوده را نمی‌گیرد؛ فقط یک لایهٔ کمکی است.
غیر فعال کردن php مستقیم در پوشه های uploads و plugins و themes
غیر فعال کردن php مستقیم در پوشه های uploads و plugins و themes

تصاویر روش قدیمی و انتخاب تنظیم درست

تصاویر زیر رابط قدیمی افزونه‌ای با نام iThemes Security را نشان می‌دهند. نام و جای گزینه‌ها در نسخهٔ فعلی ممکن است فرق داشته باشد، بنابراین عکس را دستور قطعی برای فعال کردن همهٔ تیک‌ها در نظر نگیرید. اگر افزونهٔ امنیتی شما قابلیت محدود کردن اجرای PHP در uploads دارد، توضیح همان گزینه را بخوانید و فقط تنظیم مربوط به پوشهٔ موردنظر را انتخاب کنید.
در نسخهٔ تاریخی، این تنظیم در Security و سپس System Tweaks قرار داشت. عکس را برای شناخت گزینه ببینید؛ نبودن همین نام در نسخهٔ امروز به معنی خراب بودن افزونه نیست. اگر از تنظیم مطمئن نیستید، روش سازگار با وب‌سرور را از میزبان بخواهید.
تنظیمات system tweaks در افزونه ithemes security
تنظیمات system tweaks در افزونه ithemes security
برای این هدف، گزینهٔ Disable PHP in Uploads مطرح است. دو گزینهٔ Plugins و Themes را صرفاً چون در عکس علامت خورده‌اند فعال نکنید. پیش از ذخیره، نسخهٔ فعلی تنظیمات را نگه دارید تا اگر بخشی از سایت خطا داد، بتوانید همان تغییر را برگردانید.
غیر فعال کردن اجرا مستقیم php در افزونه، پوسته و پوشه آپلود وردپرس
غیر فعال کردن اجرا مستقیم php در افزونه، پوسته و پوشه آپلود وردپرس
بعضی افزونه‌ها این محدودیت را با تغییر فایل .htaccess اعمال می‌کنند. این فایل برای تنظیم بعضی وب‌سرورهاست؛ اگر سرور آن را نمی‌خواند، وجود فایل به‌تنهایی اجرای PHP را نمی‌بندد.
امیدواریم این مقاله برای شما مفید بوده باشه، منتظر نظرات ارزشمند شما هستیم.

توضیح بیشتر برای انجام مراحل

قبل از تغییر، یک نسخهٔ پشتیبان از سایت داشته باشید. فایل‌های سایت مثل قالب و تصاویرند؛ دیتابیس نوشته‌ها، کاربران و سفارش‌ها را نگه می‌دارد، پس هر دو لازم‌اند. اگر فروشگاه دارید، بکاپ دیروز سفارش‌های امروز را ندارد. به همین دلیل، هنگام رفع خطا نباید بدون برنامه کل اطلاعات را به دیروز برگردانیم. متن پیام خطا را هم کپی کنید تا در مرحله‌های بعد بدانیم دنبال رفع چه مشکلی هستیم.

شناخت وب‌سرور

Apache، Nginx و LiteSpeed روش‌های پیکربندی متفاوت دارند. Nginx فایل .htaccess را نمی‌خواند؛ تنظیم باید در محل درست اعمال شود.

محدود کردن uploads

قانون اجرای فایل‌های PHP را فقط برای مسیر uploads و طبق پیکربندی میزبان تنظیم کنید. صرف مخفی کردن فهرست پوشه اجرای فایل مستقیم را متوقف نمی‌کند.

حذف آلودگی

اگر فایل مشکوک پیدا شده، منبع نفوذ، حساب‌ها، افزونه‌ها و فایل‌های تغییرکرده را بررسی کنید. بستن مسیر اجرا جای پاک‌سازی و رفع آسیب‌پذیری را نمی‌گیرد.
با یک فایل آزمایشی بی‌خطر و هماهنگی مدیر سرور، مسدود بودن اجرا و سالم بودن تصاویر را بررسی کنید. برای فایل مشکوک، ابتدا نسخهٔ قرنطینه و شواهد را نگه دارید.

آزمون همراه با حفظ بارگذاری تصویر

بعد از اعمال محدودیت، یک تصویر تازه از پنل وردپرس بارگذاری کنید و آدرس عمومی آن را باز کنید. محدودیت اجرای PHP نباید خواندن تصویر، CSS یا فایل مجاز را بی‌دلیل ببندد. برای آزمون اجرای اسکریپت، از فایل بی‌خطر و موقت در محیط آزمایشی استفاده کنید و بعد آن را حذف کنید.
قاعدهٔ htaccess به وب‌سرور و handler بستگی دارد. در Nginx، صرف ساختن این فایل محدودیتی ایجاد نمی‌کند. در Apache نیز تنظیم‌هایی که برای mod_php نوشته شده‌اند ممکن است با PHP-FPM یکسان نباشند. روش سازگار نصب خود را انتخاب کنید و پس از rebuild پنل، ماندگاری آن را بررسی کنید. بستن اجرا، جای پاک‌سازی فایل آلوده و اصلاح راه ورود آن را نمی‌گیرد.

منابع و ادامهٔ مطالعه

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

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