ثبت‌نام ورود

محدود کردن دسترسی به پوشه uploads/edd در وب سرور NGINX

This post is also available in: English

محدود کردن دسترسی به پوشه uploads/edd در وب سرور NGINX
محدود کردن دسترسی به پوشه uploads/edd در وب سرور NGINX

همانطور که در دوره وردپرس کار حرفه‌ای توضیح دادم. وب سرور آپاچی تقریبا قدیمی شده و برای افزایش سرعت سایت خود باید از وب سرور NGINX یا LiteSpeed استفاده کنیم.

اکثر هاستینگ‌ها به دلیل محدودیت‌های Permalink وردپرس مجبورند به جای NGINX رایگان از وب سرور لایت اسپید استفاده کنند. که البته لایت اسپید رایگان و باز متن (یا همان متن باز) نیست.

اگر قصد دارید مطمئن شوید وب سرور شما NGINX هست یا خیر، کافیست از بخش ابزار‌ها > سلامت سایت وارد بخش اطلاعات سرور شوید و وب سرور خود را مشاهده کنید.

حالا اگر سایتی دارید که بازدید بالایی دارد و مثل ما قصد دارید این سایت را روی یک سرور کاملا اختصاصی میزبانی کنید. می‌توانید از NGINX پر دردسر اما پر سرعت استفاده کنید.

مسئله امنیتی NGINX و EDD

یکی از دردسرهای NGINX عدم دسترسی به فایل htaccess و بهتر است بگوییم عدم توانایی در خواندن این فایل هست. پس شما مجبورید دستورات خود را بصورت مستقیم در فایل /etc/nginx/nginx.conf وارد کنید.

وقتی از وب سرور NGINX روی سرور خود استفاده می‌کنید و در کنار آن روی سایت وردپرسی خود افزونه Easy Digital Downloads را نصب کنید، دسترسی به پوشه دانلودهای شما باز خواهد شد. مثلا شخصی می‌تواند با وارد کردن این آدرس تمام فایل‌های فروشی شما را دانلود کند.

برای تست این مورد باید این آدرس را در مرورگر خود تایپ کنید:

http://yoursite.ir/wp-content/uploads/edd/downloadname.zip

به جای yoursite.ir ادرس سایت خود را وارد کنید و به جای downloadname.zip نام فایلی که برای دانلود قرار داده‌اید.

حالا اگر خطای 403 یا 404 دریافت کردید، طبیعتا دسترسی به این فایل محدود است. اما اگر فایل دانلود شد پس تنظیمات وب سرور شما مشکل امنیتی دارد و باید آن را حل کنید.

اگر شما مدیر سرور نیستید پس این مقاله را برای مدیر سرور خود ارسال کنید. 🙂

محدود کردن دسترسی به پوشه EDD در NGINX

برای ایجاد محدودیت دانلود مستقیم فایل در EDD باید وارد SSH سرور لینوکسی خودتان شوید. سپس پوشه /etc/nginx را باز کنید. با این دستور:

cd /etc/nginx/

حالا فایل nginx.conf را با این دستور باز کنید.

vi nginx.conf

و در نهایت باید به دنبال بخشی به نام server در این فایل باشید. آن بلاک سروری که مربوط به دامنه شماست. یعنی دامنه شما بعد از server در خط بعدی با متغیر servername ذکر شده است.

و این کد را در آن جای‌گذاری کنید. تفاوتی ندارد این کد در کدام بخش از این بلاک قرار بگیرد.

location /wp-content/uploads/edd { deny all; return 403; }

حالا فایل nginx.conf را ذخیره کنید. سپس با دستور زیر وب سرور nginx را ریستارت کنید.

service nginx restart

به همین راحتی 🙂 حالا اگر آدرس فایل را مستقیما در مرورگر خود تایپ کنید با ارور ۴۰۳ مواجه خواهید شد. این به این معناست که حالا کسی به جز سایت شما به فایل‌ها دسترسی ندارد و سایت شما می‌تواند فایل را دانلود و در اختیار کاربر قرار دهد.

موفق باشید.

نظر شما در این‌باره چیست؟