آغازه آموزش برنامه نویسی آموزش سی پلاس پلاس کتاب آموزش کد نویسی امن در ++C به فارسی

کتاب آموزش برنامه نویسی امن با زبان C++

کتاب آموزش کد نویسی امن در ++C به فارسی در ۱۰ فصل از توسط مرکز مدیریت امداد و هماهنگی عملیات رخدادهای رایانه ای (مرکز ماهر) در ۳۲۷ صفحه تهیه و منتشر شده است که میتوانید این کتاب را رایگان از سایت آغازه دانلود نمایید. یکی از زبان هایی که علاوه بر محبوبیت فراوان در میان برنامه نویسان، همیشه از زبان های پر بحث در برنامه نویسی ایمن بوده است، خانواده زبان C و به خصوص در میان آنها زبان C++ است. در این زبان ها، عمده مدیریت منابع به برنامه نویس واگذار شده است، که در صورت عدم مدیریت درست آنها، آسیب پذیری های مختلفی رخ میدهد . کتاب آموزش برنامه نویسی امن با زبان C++ به این حوزه می پردازد که در ادامه سرفصل هیا این کتاب عنوان شده است.

عنوان: کتاب آموزش کد نویسی امن در ++C به فارسی

تهیه کننده: انتشارات ماهر

زبان کتاب: فارسی

تعداد صفحه : ۳۲۷

ححم فایل: ۳٫۷ مگابایت

کتاب آموزش کد نویسی امن در ++C به فارسی

برنامه های نوشته شده به زبان سی (C) و سی پلاس پلاس (C++) از جایگاه ویژه ای در این آمار برخوردار هستند، زیرا این زبان ها جدا از محبوبیت، در اکثر محیط های برنامه نویسی و مفسرها، کنترل کامل روند اجرایی یک برنامه و تخصیص منابع را به برنامه نویس سپرده اند، که در صورت عدم مدیریت صحیح این موارد، برنامه با مخاطرات امنیتی جدی روبه رو خواهد شد. در این میان، نیاز است که برنامه نویسان با این مخاطرات آشنا شوند و برنامه را بر مبنای اصول امنیتی طراحی کنند.

فهرست مطالب کتاب آموزش برنامه نویسی امن با زبان سی پلاس پلاس

فصل اول: مقدمه

۱مقدمه
۲رشد آسیب پذیری نرم افزارها
۳ضرورت برنامه نویسی امن
۴راهنمای سند مورد مطالعه
۵کاربرد
۶شناسه ها
۷رفتار تعریف نشده
۸نمونه کدهای ناسازگار و راه حل های سازگار
۹استثنائات
۱۰ارزیابی خطر

فصل دوم: اعلان ها و مقداردهی اولیه (DCL)

۱DCL50-CPP یک تابع variadic سَبک C تعریف نکنید
۲DCL51-CPP یک شناسه ذخیره شده را اعلان یا تعریف نکنید
۳DCL52-CPP هرگز مرجع را از نوع const یا volatile توصیف نکنید
۴DCL53-CPP اعلاناتی را که از نظر نحوی مبهم هستند، ننویسید
۵DCL54-CPP توابع تخصیص و آزاد سازی را به عنوان خروجی در یک حوزه، سربار کنید
۶DCL55-CPP از نشت اطلاعات هنگام گذر از یک شی کلاس در حیطه یک مرز اعتماد، جلوگیری نمایید
۷DCL56-CPP از ایجاد چرخه ها در مقداردهی اولیه اشیای ایستا بپرهیزید
۸DCL57-CPP به استثنائات اجازه ندهید از توابع مخرب یا آزادساز فرار کنند
۹DCL58-CPP فضاهای استاندارد را تغییر ندهید
۱۰DCL59-CPP یک فضای بدون نام را در یک فایل سرآیند تعریف نکنید
۱۱DCL60-CPP از قانون تک توصیفی پیروی کنید

فصل سوم: اصطلاحات (EXP)

۱EXP50-CPP به ترتیب ارزیابی برای تأثیرات جانبی وابسته نباشید
۲EXP51-CPP یک آرایه را توسط یک اشاره گر نادرست حذف نکنید
۳EXP52-CPP در عملوند های ارزیابی نشده، به تاثیرات جانبی وابسته نباشید
۴EXP53-CPP حافظه مقدارده اولیه نشده را نخوانید
۵EXP54-CPP پس از طول عمر یک شی، به آن دسترسی پیدا نکنید
۶EXP55-CPP به یک شی cv-qualified توسط یک شی cv-unqualified دسترسی پیدا نکنید
۷EXP56-CPP یک تابع را توسط یک پیوند زبانی نامنطبق فراخوانی نکنید
۸EXP57-CPP اشاره گرهای کلاس های ناقص را تبدیل و یا حذف نکنید
۹EXP58-CPP از یک شی نوع درست به va_start گذر کنید
۱۰EXP59-CPP از offsetof در ارتباط با انواع و اعضای معتبر استفاده کنید
۱۱EXP60-CPP شی نوع لای های غیراستاندارد را از مرزهای اجرا عبور ندهید
۱۲EXP61-CPP نباید یک شی لاندا بیشتر از اشیایی رجوع شده به خود، عمر کند
۱۳EXP62-CPP به بیت های یک ارائه شی، که بخشی از ارائه مقدار شی نیست، دسترسی پیدا نکنید
۱۴EXP63-CPP به مقدار یک شی انتقال یافته تکیه نکنید

فصل چهارم: اعداد صحیح (INT)

۱INT50-CPP به مقدار شمارشی خارج از محدوده تبدیل نکنید

فصل پنجم: کاراکترها و رشته ها (STR)

۱STR50-CPP تضمین کنید که ذخیرهسازی برای رشته ها، دارای فضای کافی برای داده های کاراکتری و کاراکتر تهی است
۲STR51-CPP اقدام به ساخت یک std::string از یک اشاره گر تهی نکنید
۳STR52-CPP از ارجاعات، اشاره گرها و تکرارکننده های معتبر برای ارجاع به عناصر یک basic_string استفاده کنید
۴STR53-CPP دسترسی به مولفه بررسی را محدوده بندی کنید

فصل ششم: مدیریت حافظه (MEM)

۱MEM50-CPP به حافظه آزاد دسترسی پیدا نکنید
۲MEM51-CPP منابع تخصیص یافته را درست آزاد کنید
۳MEM52-CPP خطا های تخصیص حافظه را تشخیص دهید و به آنها رسیدگی کنید
۴MEM53-CPP وقتی طول عمر اشیا به صورت دستی مدیریت می شود، به صراحت اشیا را بسازید و از بین ببرید
۵MEM54-CPP توسط اشاره گر مرتب مناسب، جایابی جدید را برای ظرفیت ذخیره سازی کافی فراهم کنید
۶MEM55-CPP به نیازمندی های مدیریت ذخیره سازی پویای جایگزینی اولویت دهید
۷MEM56-CPP یک مقدار اشاره گر از پیش مالکیت یافته را در یک اشاره گر هوشمند غیر مرتبط ذخیره نکنید

فصل هفتم: ورودی و خروجی (FIO)

۱FIO50-CPP به طور متناوب و بدون مداخله یک فراخوانی مکانیابی، از یک جریان فایل، ورودی و خروجی نگیرید
۲FIO51-CPP وقتی دیگر به فایل ها نیاز ندارید، آنها را ببندید

فصل هشتم: اداره کردن استثنائات و خطاها (ERR)

۱ERR50-CPP به یکباره برنامه را خاتمه ندهید
۲ERR51-CPP تمامی استثنائات را اداره کنید
۳ERR52-CPP از setjmp() یا longjmp() استفاده نکنید
۴ERR53-CPP به کلاس های پایه و یا اعضای دادهای کلاس را در یک اداره کنندهی بلاک try سازنده یا مخرب ارجاع ندهید
۵ERR54-CPP اداره کنندگان catch باید انواع پارامتری خود را از بیشترین اشتقاقی تا کمترین اشتقاقی، مرتب کنید
۶ERR55-CPP به مشخصات استثنا اولویت دهید
۷ERR56-CPP ایمنی استثنا را تضمین کنید
۸ERR57-CPP هنگام اداره استثنائات، منابع را نشت ندهید
۹ERR58-CPP پیش از آغاز اجرای main() تمامی استثنائات را اداره نمایید
۱۰ERR59-CPP استثنایی را خارج از مرزهای اجرا ایجاد نکنید
۱۱ERR60-CPP اشیای استثنا نباید از طریق کپی قابل ساخت، ایجاد شوند
۱۲ERR61-CPP استثنا ها را به وسیله ارجاع مقدار سمت چپ بگیرید
۱۳ERR62-CPP خطاها را هنگام تبدیل یک رشته به یک عدد تشتخیص دهید

فصل نهم: برنامه نویسی شی گرا (OOP)

۱OOP50-CPP توابع مجازی را از طریق سازنده ها یا مخرب ها فراخوانی نکنید
۲OOP51-CPP اشیای اشتقاقی را نبُرید
۳OOP52-CPP یک شی چند ریختی را بدون مخرب مجازی حذف نکنید
۴OOP53-CPP مقداردهنده های اولیه اعضای سازنده را به ترتیب استاندارد بنویسید
۵OOP54-CPP به خوبی به تخصیص خود کپی رسیدگی کنید
۶OOP55-CPP برای دسترسی به اعضایی که وجود ندارند، از عملگرهای اشاره گر به عضو استفاده نکنید
۷OOP56-CPP به نیازمندی های نگهدارنده جایگزینی احترام بگذارید
۸OOP57-CPP توابع عضو خاص و عملگرهای دچار سربارشده را به توابع کتابخانهی استاندارد C ترجیح دهید
۹OOP58-CPP عملیات های کپی نباید شی منبع را جهش دهند

فصل دهم: همزمانی (CON)

۱CON50-CPP یک میوتکس قفل شده را از بین نبرید
۲CON51-CPP مطمئن شوید که قفل های برگزار شده فعال، در شرایط استثنایی آزاد می شوند
۳CON52-CPP به هنگام دسترسی به فیلدهای بیتی چندین نخ، از رقابت های دادهای بپرهیزید
۴CON53-CPP با قفل کردن به ترتیب از پیش تعیین شده، از بن بست اجتناب کنید
۵CON54-CPP توابعی را که ممکن است به صورت جعلی در یک حلقه پدیدار شوند، بپوشانید
۶CON55-CPP هنگام استفاده از متغیرهای شرطی، ایمنی و حیات نخ را حفظ کنید
۷CON56-CPP یک میوتکس غیربازگشتی را که متعلق به فراخوانی نخ است، قفل نکنید

منبع: کد نویسی امن در سی پلاس پلاس

دانلود و توضیحات ...

  • عنوان : کد نویسی امن در ++C
  • حجم فایل : 3.7 مگابایت
  • توضیحات کوتاه : کتاب آموزش کد نویسی امن در ++C به فارسی
  • نویسنده : حسن کریمی
  • منبع : آغازه
رمز فایل هاwww.aghazeh.com

1 دیدگاه

دیدگاه شما

نظر شما