توضیحات
آموزش تامین امنیت برنامه های وب ساخته شده در Angular
نام دوره : Angular Security Masterclass (with FREE E-Book)
پیش نیاز:
توضیحات:
این دوره یک دوره آموزشی مبانی امنیت برنامه کاربردی وب است که در آن برنامه از پشته Angular/Node استفاده می کند.
تمام کدهای سرور در تایپ اسکریپت هستند، اما مفاهیم امنیتی توضیح داده شده در آن برای سایر پشته های فناوری قابل اجرا هستند.
این دوره شامل یک کتاب الکترونیکی کمکی – The Typescript Jumpstart Ebook است
ما از چندین بسته Angular و Node دارای مجوز MIT از Auth0 استفاده خواهیم کرد (که می توانید در برنامه خود استفاده کنید)، و همچنین یک نسخه نمایشی از نحوه استفاده از Auth0 برای انجام مدیریت کاربر برنامه ارائه خواهیم داد.
مهم است که بدانیم این یک دوره خاص Auth0 نیست.
Auth0 منبع چند بسته منبع باز خواهد بود که ما استفاده خواهیم کرد، و یک نسخه نمایشی سریع از آن را انجام خواهیم داد تا نشان دهد چگونه JWT واگذاری احراز هویت را به یک سیستم شخص ثالث ساده می کند، که می تواند در داخل توسعه یابد.
امنیت – گامی اساسی در حرفه توسعه نرم افزار
امنیت احتمالاً موضوع شماره یک پیشرفته ای است که از توسعه دهندگان نرم افزار انتظار می رود در مسیر پیشرفت در حرفه توسعه نرم افزار خود به آن مسلط شوند.
دانش امنیتی به سختی به دست می آید، اما برای پیشرفت به سمت های ارشد توسعه نرم افزار، مانند Application Architect یا موارد مشابه، ضروری است.
یادگیری اصول امنیت وب، دانستن نحوه طراحی یک برنامه کاربردی برای امنیت، و دانستن نحوه تشخیص و رفع مشکلات امنیتی یک مهارت ضروری برای یک توسعه دهنده ارشد است.
اما مشکل این است که دانش امنیتی متعامد با بیشتر موضوعات دیگر است و معمولاً سالها طول می کشد تا یاد بگیرند.
خبر خوب این است که به محض اینکه دانش امنیتی را در اختیار داشته باشید، ماندگاری بسیار طولانی تری نسبت به دانش توسعه نرم افزار به طور کلی دارد.
بیشتر آسیبپذیریها و رفعهایی که در این دوره خواهید آموخت 10 سال پیش مفید بودند و (به احتمال بسیار زیاد) 10 سال بعد همچنان مفید خواهند بود – Angular و Node فقط نمونهای از یک پشته هستند .
تسلط بر امنیت به عنوان چیزی بسیار سخت دیده می شود – در واقع اینطور نیست! بسته به اینکه چگونه آن را یاد می گیرید، امنیت برنامه بسیار قابل دسترس تر از آن چیزی است که فکر می کنید.
بهترین راه برای یادگیری امنیت به شیوه ای سرگرم کننده و کاربردی چیست؟
کاری که ما انجام خواهیم داد این است: میخواهیم اسکلت یک برنامه در حال اجرا را که هنوز امنیت ندارد، بگیریم، و گام به گام برنامه را ایمن کنیم.
با استفاده از چند بسته MIT از Auth0 (که میتوانید در هر پروژهای از آنها استفاده کنید)، میخواهیم عملکرد ثبت نام و ورود به سیستم را از ابتدا پیادهسازی کنیم، و چون امنیت را نمیتوان فقط در سمت کلاینت اعمال کرد، ما هم frontend را در Angular و هم backend را در Node پیاده سازی می کند.
همانطور که برنامه را ایمن می کنیم و قرار است در طول دوره بارها به برنامه حمله کنیم تا ثابت کنیم که آسیب پذیری ها واقعی هستند!!
با انجام این کار، در طول مسیر با اصول احراز هویت و مجوز آشنا می شویم، با آسیب پذیری های رایج مانند Dictionary Attacks، CSRF و موارد دیگر آشنا می شویم و با ابزارهای رمزنگاری رایج مانند Hashing، Salting، JWT، رمز عبور آشنا می شویم. توصیه های ذخیره سازی و موارد دیگر.
لطفاً مرعوب این مفاهیم نشوید:
تمرکز در این دوره بر روی داخلی هر یک از ابزارهای رمزنگاری که استفاده خواهیم کرد، نخواهد بود، بلکه بر روی درک سطح بالایی که این ابزارها چه مشکلاتی را حل میکنند، تمرکز خواهد کرد. از هر کدام و چرا استفاده کنید
همچنین یاد خواهیم گرفت که چگونه اپلیکیشن خود را برای امنیت طراحی کنیم، و خواهیم آموخت که چگونه در بسیاری از موقعیت ها طراحی اپلیکیشن بهترین دفاع است.
بررسی اجمالی دوره آموزش تامین امنیت برنامه های وب ساخته شده در Angular
از ابتدا شروع می کنیم: نحوه صحیح انجام مدیریت کاربر و ثبت نام را مشاهده می کنیم: نحوه ذخیره رمزهای عبور در پایگاه داده را یاد می گیریم و هش های رمزنگاری را به روشی قابل دسترس معرفی می کنیم.
هنگامی که عملکرد ثبت نام را در اختیار گرفتیم، Login را پیاده سازی می کنیم و نیاز به یک نشانه هویت موقت را درک می کنیم. اولین پیاده سازی ما ورود به حالت حالت است، جایی که توکن در سطح سرور نگهداری می شود.
و در این مرحله میتوانیم فکر کنیم که احراز هویت در محل داریم، اما تصمیم میگیریم برنامه خود را برای مقیاسپذیری آماده کنیم، بنابراین تصمیم میگیریم یک رویکرد مبتنی بر JWT (JSON Web Tokens) را امتحان کنیم، زیرا میدانیم که این همان چیزی است که سرویسهایی مانند Firebase و Auth0 دارند. استفاده کنید.
ما از چند بسته Auth0 استفاده خواهیم کرد تا سریعاً Login خود را بر اساس JWT تغییر دهیم و مزایای استفاده از JWT و همچنین برخی از معایب احتمالی را یاد بگیریم.
سپس خواهیم دید که چگونه میتوان احراز هویت را با استفاده از یک سرویس مبتنی بر JWT شخص ثالث مانند Auth0 انجام داد، که به طور مؤثری تمام منطق احراز هویت را از پایگاه کد و پایگاه داده ما حذف میکند و آن را به یک سرویس شخص ثالث واگذار میکند.
برنامه و سرویس احراز هویت متمرکز.
این بدان معنی است که اگر نمی توانید از Auth0 در شرکت خود استفاده کنید، می توانید همان اصول طراحی را اعمال کنید و یک راه حل JWT طراحی کنید که احراز هویت را به یک سرور متمرکز در پشت فایروال محول می کند.
سپس نحوه انجام عملکرد مبتنی بر نقش در سطح UI در Angular با استفاده از Angular Router و یک دستورالعمل سفارشی برای نمایش یا پنهان کردن بخشهای خاصی از UI بسته به نقش کاربر را توضیح خواهیم داد. ما یاد خواهیم گرفت که چرا روتر نمی تواند امنیت واقعی را اعمال کند.
ما همچنین در مورد مجوز سمت سرور صحبت خواهیم کرد و یک عملکرد سطح مدیریت مربوط به امنیت را که معمولاً مورد نیاز است را پیاده سازی خواهیم کرد:
سرویس ورود به عنوان کاربر، که به مدیر اجازه می دهد تا به عنوان هر کاربر وارد سیستم شود تا گزارش مشکل را بررسی کند. ما می توانیم ببینیم که چرا باید این عملکرد را ایمن کنیم!
در پایان همه این آسیبپذیریها و رفعهای امنیتی، ما یک برنامه بهخوبی ایمن خواهیم داشت و هزاران مفهوم مرتبط با امنیت را در طول مسیر به روشی جالب و کاربردی یاد خواهیم گرفت!
دوره آموزش تامین امنیت برنامه های وب ساخته شده در Angular برای چه کسانی است:
توسعه دهندگان Angular به دنبال یادگیری عمیق امنیت برنامه های وب در زمینه خاص یک برنامه Angular هستند.
یودمی ایران –
دوره درخواستی خود را از راه های ارتباطی درخواست کنید