ایجاد پسوورد بر روی یک مسیر | Nginx from scratch
۲۶ تیر ۱۴۰۴
گاهی لازم است دسترسی به بعضی مسیرها را با استفاده از رمز عبور محدود کنیم. در این قسمت یاد میگیریم چطور این رمز عبور را ایجاد کرده و از آن استفاده کنیم.
برای ایجاد رمز عبور بر روی یک مسیر میتوان از ترکیب دستورات 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