دوره آموزشی کدنویسی ایمن در C
1 ساعت 29 دقیقهمتوسط2025-03-13
مدرسین

Dan Gookin
Creator, Teacher, and Technology Writer with 20+ years of experience
جزئیات دوره
این دوره به زبان C میپردازه که بهخاطر داشتن چندین ضعف از جمله نوع دادهها، بررسی محدودیتها، و مدیریت حافظه شناخته شده است. بسیاری از آسیبپذیریهای معروف در کدهای C که به دلیل ضعف در نوع دادهها و سرریزها بوجود میآیند، بررسی میشوند. دن گوکین، مدرس این دوره، این آسیبپذیریها رو توضیح میده و روشهایی برای کدنویسی دفاعی و جلوگیری از این مشکلات معرفی میکنه. سایر مباحثی که در این دوره پوشش داده میشه، شامل رفتارهای تعریفنشده، جلوگیری از ساختارهای پیچیده، اعتبارسنجی ورودیها، استفاده از انواع داده مناسب، مدیریت رشتهها، مدیریت حافظه، و کار با اشارهگرها هستند.
اهداف یادگیری:
شناسایی و دفاع در برابر آسیبپذیریهای شناخته شده C.
بررسی نقاط ضعف زبان برنامهنویسی C.
شناسایی و اجتناب از آسیبپذیریها هنگام انجام وظایف معمول برنامهنویسی.
نوشتن برنامههای امن و قوی C.
اهداف یادگیری:
شناسایی و دفاع در برابر آسیبپذیریهای شناخته شده C.
بررسی نقاط ضعف زبان برنامهنویسی C.
شناسایی و اجتناب از آسیبپذیریها هنگام انجام وظایف معمول برنامهنویسی.
نوشتن برنامههای امن و قوی C.
مهارت ها
CSoftware Development SecurityCybersecurityProgramming LanguagesOpen SourceSoftware DevelopmentOne-Off
سرفصل ها
0. مقدمه
- 01 - آیا کد شما امن است؟
- 02 - پیکربندی و راه اندازی
1. در حالت دفاعی
- 03 - درک نقاط ضعف C
- 04 - افراد بد به دنبال چه چیزی هستند
- 05 - بهره برداری از شکار
- 06 - مستند کردن همه چیز
2. رفتارهای تعریف نشده
- 07 - قالببندی دستورالعملهای پیش پردازنده
- 08 - استفاده از یک تکلیف به عنوان شرط
- 09 - اجتناب از putchar() در یک حلقه while
- 10 - استفاده از فراخوانی system().
- 11 - دسترسی به عناصر فراتر از اندازه آرایه
- 12 - تبدیل اعداد صحیح
- 13 - حلقه زدن با مقادیر ممیز شناور
- 14 - استفاده از مقادیر برگشتی
- 15 - تایید زمانی که EOF خوانده شده است
- 16 - چالش - کد را رفع کنید
- 17 - راه حل - کد را اصلاح کنید
3. اعتبار سنجی ورودی
- 18 - احراز هویت ورودی عددی
- 19 - تبدیل رشته به عدد
- 20 - استفاده از مقادیر int به جای char
- 21 - خواندن ورودی با fgets()
- 22 - فیلتر ورودی رشته
- 23 - چالش - تایید ورودی
- 24 - راه حل - تایید ورودی
4. مدیریت رشته
- 25 - تخصیص رشته ها
- 26 - اجتناب از انتساب بد رشته
- 27 - کار با لفظ رشته ای
- 28 - توابع رشته ذهنی
- 29 - ذخیره رمزها و کدها
- 30 - پاک کردن دادهها پس از استفاده
- 31 - چالش - کد مخفی
- 32 - راه حل - رمز مخفی
5. مسائل مربوط به اشاره گر
- 33 - راهاندازی اشاره گرها و بافرها
- 34 - بررسی نشانگرهای NULL
- 35 - انجام ریاضی اشاره گر
- 36 - نشانگرهای آزاد
- 37 - چالش - وارد ترکیب شوید
- 38 - راه حل - وارد ترکیب شوید
نتیجه گیری
- 39 - مراحل بعدی
دوره های مرتبط
- دوره آموزشی دیباگ کردن کدهای C (یافتن و رفع اشکالات در برنامهنویسی C)
- دوره آموزشی کاوش در کتابخانه های زبان C
- دوره آموزشی برنامه نویسی شبکه در C: توسعه برنامه های کاربردی مشتری/سرور قابل اعتماد
- دوره آموزشی راهنمای کامل مبانی برنامه نویسی C
- دوره آموزشی کتابخانه استاندارد زبان برنامه نویسی سی
- دوره آموزشی آن را تمرین کن: تصمیمات و حلقه های C
- دوره آموزشی سطح بالا: زبان برنامه نویسی سی (C)
- دوره آموزشی برنامه نویسی پیشرفته زبان C: بهینه سازی عملکرد و کارایی