توسعهدهندگان تحت فشار ضربالاجلهای اسپرینت و درخواستهای ویژگیهای جدید زندگی میکنند. بهینهسازی عملکرد و صیقل دادن رابط کاربری (UI) مورد تحسین قرار میگیرند. امنیت معمولاً در بکلاگ باقی میماند و بیصدا منتظر نوبت خود میماند. این انتظار یک اشتباه است. باتهای خودکار شبانهروز اینترنت را اسکن میکنند و به دنبال کلیدهای لو رفته، نقاط تزریق (injection points) و احراز هویتهای ضعیف میگردند. نشت دادهها به بخشی از اخبار عادی دنیای فناوری تبدیل شده است، اما برای تیم مسئول، پاکسازی آن بسیار سخت و طاقتفرسا است. خبر خوب این است که نوشتن کد امن نیازی به دکتری رمزنگاری ندارد؛ بلکه نیازمند گره زدن چند عادت قوی در جریان کاری روزانه شماست. در اینجا پنج تمرین وجود دارد که واقعاً از کاربران و سیستمهای شما محافظت میکند.
احراز هویت خود را ایمن کنید
بسیاری از تیمها وسوسه شدهاند که یک سیستم ورود سفارشی بسازند: یک جدول کاربران، یک ستون رمز عبور و یک مولد JWT. این کار ساده به نظر میرسد تا زمانی که متوجه شوید حالا مسئول مدیریت نشست (session management)، چرخش توکن (token rotation)، محافظت در برابر حملات brute-force و بازنشانی امن رمز عبور هستید. اکثر تیمها باید از ساختن این موارد از صفر دست بردارند. سپردن احراز هویت به ارائهدهندگان هویت معتبر از طریق OAuth 2.0 یا OpenID Connect، دستههای کاملی از ریسکها را از کد شما حذف میکند. شما پروتکلهایی را به ارث میبرید که توسط هزاران مهندس آزمایش شده و توسط جامعه گستردهتر امنیتی بازبینی شدهاند.
با این حال، اگر مجبورید خودتان رمزهای عبور را مدیریت کنید، با آنها با احترام برخورد کنید. تکتک آنها را با استفاده از bcrypt یا Argon2 هش کنید. این الگوریتمها عمداً کند هستند. این کندی، مهاجمانی را که پایگاه داده شما را میدزدند و سعی میکنند رمزها را به صورت آفلاین کرک کنند، با محدودیت مواجه میکند. هرگز رمز عبور را به صورت متن ساده (plain text) رها نکنید؛ نه در لاگها، نه در
