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