۲۶ تیر ۱۴۰۴
گاهی لازم است دسترسی به بعضی مسیرها را با استفاده از رمز عبور محدود کنیم. در این قسمت یاد میگیریم چطور این رمز عبور را ایجاد کرده و از آن استفاده کنیم.
برای ایجاد رمز عبور بر روی یک مسیر میتوان از ترکیب دستورات auth_basic و auth_basic_user_file استفاده کنیم.
دستور auth_basic یک متن را مشخص میکند که در در صفحه ی ورود پسوورد به کاربر نمایش داده می شود. دستور auth_basic_user_file مسیر فایلی که حاوی یوزرنیم و پسوورد است را مشخص میکند. برای ایجاد فایلی که حاوی یوزرنیم و پسوورد باشد میتوان از ابزار htpasswd استفاده کرد.
در دستور بالا یوزرنیم را admin و پسوورد را pass123 قرار دادیم. فلگ -c یک فایل .htpasswd میسازد و با فلگ -b میتوانیم پسوورد با در خود دستور قرار دهیم. در صورتی که از فلگ -b استفاده نکنیم به صورت جداگانه پسوورد از ما پرسیده خواهد شد. این فلگ معمولا در زمانی کاربرد دارد که میخواهیم این دستور را درون کد خود قرار دهیم و قرار نیست پسوورد را به صورت دستی وارد کنیم.
در صورتی که فایل وجود داشته باشد میتوانیم یک یوزرنیم و پسوورد جدید را نیز به آن اضافه کنیم:
سپس میتونیم با تنظیمات زیر از مسیر مورد نظرمون حفاظت کنیم:
طبق مثال بالا اگر به مسیر /secure بریم , مرورگر یوزنیم و پسوورد را از ما خواهد پرسید و در صورتی که آن را به درستی وارد کنیم, صفحه ی مورد نظر به ما نشان داده می شود.
برخی از مرورگرها متنی که با استفاده از دستور auth_basic مشخص میکنیم را نادیده میگیرند. برای مثال Chrome و Firefox این متن را نمایش نمی دهند.
در صورتی که یوزرنیم و پسوورد را به درستی وارد کنیم, تا مدت کوتاهی یوزرنیم و پسوورد دوباره از ما پرسیده نخواهند شد.
برای ایجاد فایل حاوی یوزرنیم و پسووردها همچنین میتوانیم از دستور openssl passwd استفاده کنیم. برای اطلاعات بیشتر میتونید مستندات nginx رو بررسی کنید.
قسمت قبل: ریدایرکت (redirect) و ریرایت (rewrite) | Nginx from scratch
قسمت بعد: بلاک و وایت لیست کردن آیپی ها | Nginx from scratch