معرفی و شروع بخش دوم: مقدمات امنیت در اپلیکیشن های FastAPI

توی بخش قبلی یاد گرفتیم که چطور میشه اپلیکیشن های FastAPI‌ به دیتابیس های SQL و NoSQL متصل کرد. با موفقیت مدل های دیتابیس رو پیاده سازی کردیم و مسیر هایی که از قبل توی نسخه های قبل اپلیکیشن تعریف شده بودن رو جوری آپدیت کردیم تا بتونن از دیتابیس ها و مدل های ایجاد شده برای اونها استفاده کنن. مشکلی که وجود داشت این بود که اپلیکیشنمون به هر کی میرسید اجازه میداد تا رویداد ها رو ویرایش کنه، در صورتی که باید جوری باشه که فقط کاربر های دارای دسترسی بتونن یک رویداد رو ویرایش کنن. در این بخش امنیت اپلیکیشنمون رو با استفاده از JWT (JSON Web Token) افزایش میدیم و فقط به یوزر های احراز هویت شده اجازه میدیم تا بلاهای مختلف سر رویداد های ذخیره شده بیارن.

پروسه افزایش امنیت یک اپلیکیشن شامل اضافه کردن بررسی های امنیتی میشه که ازشون برای محدود کردن دسترسی عوامل ناشناس و مشکوک به قابلیت های اپلیکیشن استفاده میشه. اینطوری میشه از یک سری از هک ها و دستکاری های غیرقانونی در اپلیکیشن جلوگیری کرد. احراز هویت یا authentication در حقیقت شامل پروسه بررسی و اعتبارسنجی اطلاعات داده شده توسط عوامل مختلف هست و در کلام ساده به معنی اجازه دادن به اون عوامل برای انجام کار های مختلف هست. زمانی که اطلاعات احراز هویت برای ورود به سیستم بررسی شدن و با موفقیت اعتبارسنجی شدن، به عوامل مورد نظر اجازه انجام عملیات های مختلف داده میشه.

در آخر این بخش شما توانایی اضافه کردن یک لایه authentication به اپلیکیشنتون رو خواهید داشت. در بخش قراره در مورد افزایش امنیت ذخیره سازی پسورد ها به وسیله هش (hash) کردن اونها، اضافه کردن یک لایه authentication، و محافظت از مسیر ها در برابر دسترسی یوزر های احراز هویت نشده توضیح بدیم. با توجه به این موضوع، توی این بخش موارد زیر رو بررسی میکنیم:

  • متد ها و روش های authentication در FastAPI
  • استفاده از JWT و OAuth2 در اپلیکیشن
  • محافظت از مسیر ها با استفاده از dependency injection
  • راه اندازی و انجام تنظیمات مربوط به CORS