برنامهنويسي ايمن و استفاده از روشها، تكنيكها و ويژگيهاي ايمن در توسعه نرمافزارها، همواره مورد توجه بخشهاي صنعتي از جمله در حوزههاي هوايي، نفت و گاز، ريلي و خودروسازي بوده است تا جايي كه استانداردهاي متعددي براي توسعه نرمافزارهاي ايمن (Safe) ارائه شده است. يكي از بخش هاي مهمي كه اغلب استانداردهاي ايمني توسعه نرمافزار به آن توجه دارند، زبان، كامپايلر و سبك مورد استفاده براي برنامهنويسي است. در مورد سبك برنامهنويسي مقالات، بهترين تجربيات و يا دستورالعملهاي ايمني متعددي ارائه شده است كه از آن جمله ميتوان به MISRA C 2004 و MISRA C++ 2008 اشاره نمود كه مورد استقبال عمومي و همچنين ابزارهاي توسعه نرمافزار قرار گرفته است، اما نكته حائز اهميت در اين دستورالعملها، عدم وجود دلايل و نيز عدم پرداختن به نكاتي است كه ميبايست در تكنيكهاي برنامهنويسي خصوصاً در مورد حافظه رعايت شود. بخش CERT از آزمايشگاه مهندسي نرمافزار (SEI) دانشگاه Carnegie Mellon شروع به انتشار چنين نكات و قواعدي براي برنامهنويسي ايمن نموده است كه به تشريح جزئيات نكات ميپردازد و سبب ميشود تا برنامهنويس ضمن آموزش تكنيكهاي برنامهنويسي، جزئيات ايمني را نيز فرا گيرد. كتاب حاضر به نكات ايمني در برنامهنويسي جاوا ميپردازد كه بخشي از آن و همچنين نكات بروز شده را ميتوانيد در اينجا مشاهده كنيد. خواندن اين كتاب به برنامهنويسان جاوا توصيه ميشود و براي برنامهنويساني كه در حوزه ايمني فعاليت ميشود، اجباري! است.
این کتاب شامل بخشهای زیر است:
- معرفي
- اعتبارسنجي ورودي و تميز كردن داده (IDS)
- تعريف و مقداردهي (DCL)
- عبارات (EXP)
- انواع و عمليات عددي (NUM)
- شيگرايي (OBJ)
- متدها (MET)
- رفتار استثناءها (ERR)
- قابليت رويت و خاصيت اتميك (VNA)
- قفلگذاري (LCK)
- APIهاي نخ (THI)
- مجموعه نخها (TPS) (Thread Pools)
- ساير نكات ايمني نخها (TSM)
- ورودي – خروجي (FIO)
- ترتيبسازي (SER)
- ايمني سكو (SEC)
- محيط زمان اجرا (ENV)
- ساير نكات (MSC)
نسخه بهزبان انگلیسی این کتاب را میتوانید از اینجا دانلود کنید.