آموزش چگونه از نوشتن کد ناامن خودداری کنیم

How to Avoid Writing Insecure Code

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
توضیحات دوره: بهترین راه‌ها برای جلوگیری از اشتباهات کدنویسی که هکرها از آنها سوء استفاده می‌کنند تله‌های امنیتی مکرر که توسعه‌دهندگان در آن قرار می‌گیرند علل ریشه‌ای قابل مدیریت و کاربردی بسیاری از ضعف‌های نرم‌افزار معروف امکان ترسیم اشکالات امنیتی به الگوهای کدنویسی خاص در نرم‌افزار شما سوالات امنیتی انعکاسی که باید در هنگام کدنویسی بپرسید آشنایی با نرم‌افزارهای معروف اشکالات امنیتی؛ XXE، Session Puzzling، Mass Assignment، XSS، Directory Traversal، IDOR و موارد دیگر روش های ایمن و ناامن اعتبارسنجی ورودی

این آموزش در مورد نوشتن نرم افزار امن است. ما تصمیم گرفتیم که شیوه های کدگذاری ایمن را با استفاده از دیدگاهی ارائه کنیم که در آن اشتباهات امنیتی گسترده کدنویسی به بخش های قابل درک طبقه بندی می شوند. ما امیدواریم که این امر منطقی‌تر باشد و برای توسعه‌دهندگان و تحلیل‌گران سخت‌کوش مفیدتر باشد.

امنیت باید جزء ذاتی هر روش تولید نرم افزار و اجرای آن باشد. با این حال، توسعه یک فرآیند پیچیده است و حفظ امنیت یک نرم افزار با افزایش سن بسیار دشوار است. ابزارها، متدولوژی ها و دانش امنیتی متعددی برای تولید یک نرم افزار امن وجود دارد. با این حال، هنوز تعداد زیادی از برنامه ها شامل اشکالات امنیتی مهم هستند. اکثر این اشکالات ناشی از الگوهای کدگذاری بدی هستند که ما آن را ضدالگوی امنیت نرم افزار یا به عبارت ساده تر، اشتباه می نامیم.

یک ضد الگو پاسخی متداول به یک مشکل تکراری است که معمولاً بی اثر است یا بدتر از آن خطراتی را به همراه دارد. به عبارت ساده‌تر، ضد الگوها معمولاً راه‌حل‌های بدی برای مشکلات هستند.

به عنوان مثال، یکی از ضد الگوهای معروف در توسعه نرم افزار Spaghetti Code است. در مراحل اولیه توسعه‌دهنده بودن، معمولاً با اهمیت مدولار بودن آشنا نیستیم یا زمان کمی برای طراحی اولیه پیدا می‌کنیم. بنابراین، ما تمایل داریم نرم‌افزار بدون ساختار بسیار پیچیده و سخت برای درک آن تولید کنیم. این روش کدگذاری کد اسپاگتی را تولید می کند، اما برنامه محصول نهایی همچنان ممکن است اجرا شود و در تولید خدمت کند. با این حال، سازگاری با تغییرات جدید بسیار دشوار است. زیرا از آنجایی که کد ماژولار یا ساختاری نیست، اضافه کردن ویژگی های جدید دشوار است. علاوه بر این، هر تغییری در کد بر جریان های دیگر به صورت غیرقابل پیش بینی تأثیر می گذارد. تعمیر و نگهداری نیز فلج شده است. از آنجایی که شکل پیچیده کد، زندگی توسعه دهندگان جدید را در هنگام تنظیم دشوار می کند.

به طور مشابه، انتخاب های بدی در طراحی یا کدگذاری وجود دارد که به طور مکرر منجر به اشکالات امنیتی می شود. مهم است که از این ضد الگوهای امنیتی نرم افزار آگاه باشید تا طعمه هکرها نشوید. این دوره شامل هشت اشتباه اصلی مختلف خواهد بود. برخی از آنها شایع تر از بقیه هستند، با این حال، همه آنها نتایج مرگباری دارند. در هر درس ابتدا سعی خواهیم کرد توضیح دهیم که ضد الگوی خاص چیست. سپس، ما به ارائه یک یا چند نسخه نمایشی در مورد اینکه چه چیزی ممکن است هنگام اشتباه رخ دهد، ادامه می دهیم. در پایان هر درس، به صداهای مختلف و راه حل های شناخته شده در برابر انتخاب های ناامن طراحی یا کدگذاری نگاه خواهیم کرد.


سرفصل ها و درس ها

معرفی Introduction

  • بررسی اجمالی دوره The Course Overview

  • کمی شرایط A Little Bit of Terms

  • امتحان Quiz

  • آنتی الگوهای امنیتی نرم افزار Software Security Anti-Patterns

  • امتحان Quiz

سوگیری تایید Confirmation Bias

  • ضد الگوی سوگیری تایید چیست؟ What is Confirmation Bias Anti-Pattern?

  • وظیفه Wason 2-4-6 Wason’s 2-4-6 Task

  • یک توهم صوتی - مغز شما An Audio Illusion - Your Brain

  • Heartbleed: یک فروپاشی امنیت کامل اینترنت Heartbleed: A Total Security Collapse of the Internet

  • جزئیات Heartbleed Heartbleed Details

  • آپلود ناامن فایل چیست؟ What is Insecure File Upload?

  • نسخه ی نمایشی: بررسی افزونه Buggy Demo: Buggy Extension Check

  • چگونه رفع کنیم؟ How to Fix?

  • خلاصه Recap

  • امتحان Quiz

کپی-پیست کد ناامن Copy-Paste Insecure Code

  • ضد الگوی کد ناامن کپی پیست چیست؟ What is Copy-Paste Insecure Code Anti-Pattern?

  • تجزیه و تحلیل: پاسخ های StackOverflow به طور بحرانی ناامن Analysis: Critically Insecure StackOverflow Answers

  • XML External Entity Attack چیست؟ What is XML External Entity Attack?

  • نسخه ی نمایشی: حمله XXE Demo: XXE Attack

  • اعتماد به گواهینامه های SSL ناامن چیست؟ What is Trusting Insecure SSL Certificates?

  • نسخه ی نمایشی: اعتماد به گواهی نامه های خودامضا Demo: Trusting Self-Signed Certificates

  • چگونه رفع کنیم؟ How to Fix?

  • خلاصه Recap

  • امتحان Quiz

عدم مجوز Lack of Authorization

  • ضد الگوی عدم مجوز چیست؟ What is Lack of Authorization Anti-Pattern?

  • مرجع شیء مستقیم ناامن (IDOR) چیست؟ What is Insecure Direct Object Reference (IDOR)?

  • نسخه ی نمایشی: IDOR Demo: IDOR

  • چک های مجوز از دست رفته در PostBacks چیست؟ What is Missing Authorization Checks at PostBacks?

  • نسخه ی نمایشی: بررسی های مجوز در PostBacks وجود ندارد Demo: Missing Authorization Checks at PostBacks

  • چگونه رفع کنیم؟ How to Fix?

  • خلاصه Recap

  • امتحان Quiz

ترکیب کد و داده Mixing Code and Data

  • ضد الگوی ترکیب کد و داده چیست؟ What is Mixing Code and Data Anti-Pattern?

  • SQL Injection چیست؟ What is SQL Injection?

  • نسخه ی نمایشی: SQL Injection Demo: SQL Injection

  • XPath چیست؟ What is XPath?

  • نسخه ی نمایشی: XPath Injection Demo: XPath Injection

  • چگونه رفع کنیم؟ How to Fix?

  • خنثی سازی Neutralization

  • خلاصه Recap

  • امتحان Quiz

استفاده از لیست سیاه Using Blacklists

  • استفاده از ضد الگوی لیست سیاه چیست؟ What is Using Blacklists Anti-Pattern?

  • Cross Site Scripting چیست؟ What is Cross Site Scripting?

  • دور زدن فیلترهای لیست سیاه Bypassing Blacklist Filters

  • نسخه ی نمایشی: دور زدن فیلترهای لیست سیاه Demo: Bypassing Blacklist Filters

  • بای پس تأیید اعتبار درخواست دات نت .NET Request Validation Bypass

  • نسخه ی نمایشی: Spring AutoBind Bypass لیست سیاه Demo: Spring AutoBind Blacklist Bypass

  • چگونه رفع کنیم؟ How to Fix?

  • خلاصه Recap

  • امتحان Quiz

بدخواه را ببخش Pardon the Malintent

  • ضدالگوی Pardon the Malintent چیست؟ What is Pardon the Malintent Anti-Pattern?

  • Regular Expression DOS چیست؟ What is Regular Expression DOS?

  • نسخه ی نمایشی: Regex DOS Demo: Regex DOS

  • پیمایش دایرکتوری چیست؟ What is Directory Traversal?

  • نسخه ی نمایشی: پیمایش دایرکتوری Demo: Directory Traversal

  • چگونه رفع کنیم؟ How to Fix?

  • خلاصه Recap

  • امتحان Quiz

ناآگاهی کتابخانه ایمن Secure Library Ignorance

  • ضد الگوی ناآگاهی کتابخانه ایمن چیست؟ What is Secure Library Ignorance Anti-Pattern?

  • مقدمه ای بر کتابخانه jsTree Javascript Introduction to jsTree Javascript library

  • نسخه ی نمایشی: jsTree - Cross Site Scripting Demo: jsTree - Cross Site Scripting

  • اشکالات نامطمئن ناامن چیست؟ What is Insecure Deserialization Bugs?

  • نسخه ی نمایشی: XStream - جاوا deserialization Demo: XStream - Java Deserialization

  • معرفی کوتاه React و SPA Short Introduction to React and SPAs

  • نسخه ی نمایشی: استفاده از واکنش ناامن Demo: Insecure React Use

  • چگونه رفع کنیم؟ How to Fix?

  • خلاصه Recap

  • امتحان Quiz

دانش ناکافی WWW Insufficient WWW Knowledge

  • ضد الگوی دانش ناکافی WWW چیست؟ What is Insufficient WWW Knowledge Anti-Pattern?

  • X-Forwarded-For HTTP Header چیست؟ What is X-Forwarded-For HTTP Header?

  • نسخه ی نمایشی: X-Forwarded-Insecure-For Parsing Demo: Insecure X-Forwarded-For Parsing

  • مقدمه ای کوتاه بر CAPTCHA A Short Introduction to CAPTCHAs

  • نسخه ی نمایشی: مکانیسم ناامن ضد نیروی بی رحم Demo: Insecure Anti-Brute Force Mechanism

  • Session Puzzling چیست؟ What is Session Puzzling?

  • نسخه ی نمایشی: جلسه گیج کننده Demo: Session Puzzling

  • کنترل های سمت مشتری Client Side Controls

  • چگونه رفع کنیم؟ How to Fix?

  • خلاصه Recap

  • امتحان Quiz

افزایش سطح حمله Increasing the Attack Surface

  • افزایش ضد الگوی سطح حمله چیست؟ What is Increasing the Attack Surface Anti-Pattern?

  • Mass Assignment چیست؟ What is Mass Assignment?

  • نسخه ی نمایشی: تخصیص انبوه Demo: Mass Assignment

  • آلودگی پارامتر توییتر IDOR و HTTP Twitter IDOR & HTTP Parameter Pollution

  • چگونه رفع کنیم؟ How to Fix?

  • خلاصه Recap

  • امتحان Quiz

امتیاز: استراتژی های اعتبار سنجی ورودی Bonus: Input Validation Strategies

  • نگاهی کوتاه به استراتژی ها A Short View of Strategies

  • قرار دادن لیست سفید Whitelisting

  • لیست سیاه Blacklisting

  • پاکسازی Sanitization

  • رمزگذاری Encoding

  • عادی سازی Normalization

  • امتحان Quiz

خلاصه دوره و کار آینده Course Recap and Future Work

  • خلاصه و از اینجا کجا برویم؟ Recap & Where to Go from Here?

  • آزمون دوره Course Quiz

نمایش نظرات

نظری ارسال نشده است.

آموزش چگونه از نوشتن کد ناامن خودداری کنیم
خرید اشتراک و دانلود خرید تکی و دانلود | 160,000 تومان (5 روز مهلت دانلود) زمان تقریبی آماده سازی لینک دانلود این دوره آموزشی حدود 5 تا 24 ساعت می باشد.
جزییات دوره
6.5 hours
82
Udemy (یودمی) udemy-small
28 اردیبهشت 1402 (آخرین آپدیت رو دریافت می‌کنید، حتی اگر این تاریخ بروز نباشد.)
198
4.6 از 5
ندارد
دارد
دارد

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Bedirhan Urgun Bedirhan Urgun

علاقه مندان به امنیت نرم افزار

Udemy (یودمی)

یودمی یکی از بزرگ‌ترین پلتفرم‌های آموزشی آنلاین است که به میلیون‌ها کاربر در سراسر جهان امکان دسترسی به دوره‌های متنوع و کاربردی را فراهم می‌کند. این پلتفرم امکان آموزش در زمینه‌های مختلف از فناوری اطلاعات و برنامه‌نویسی گرفته تا زبان‌های خارجی، مدیریت، و هنر را به کاربران ارائه می‌دهد. با استفاده از یودمی، کاربران می‌توانند به صورت انعطاف‌پذیر و بهینه، مهارت‌های جدیدی را یاد بگیرند و خود را برای بازار کار آماده کنند.

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