نتایج ممیزی امنیتی: چرا احساس شرمندگی کردم

اخیراً یک ممیزی امنیتی روی تمام پروژه‌های جانبی‌ام انجام دادم. این پروژه‌ها شامل بک‌اند FastAPI، ربات‌های تلگرام، PWA و اپلیکیشن‌های Streamlit من می‌شوند.

فکر می‌کردم چون با دقت کد می‌نویسم، کدم امن است. اما اشتباه می‌کردم.

من این باگ‌های واقعی در محیط عملیاتی (production) را به اشتراک می‌گذارم تا به شما کمک کنم از آن‌ها دوری کنید. این‌ها چک‌لیست‌های تئوری نیستند؛ این‌ها اشتباهاتی هستند که من واقعاً مرتکب شده‌ام.

چک‌لیست اجباری جدید من:

قبل از کدنویسی: • ایجاد یک .gitignore • ایجاد یک .env.example

برای هر endpoint: • افزودن احراز هویت • استفاده از پیام‌های خطای عمومی • افزودن محدودیت نرخ (rate limits) به وظایف سنگین

قبل از commit کردن: • اسکن کردن diff برای یافتن اطلاعات حساس (secrets)

قبل از استقرار (deploying): • انجام ممیزی‌های امنیتی روی وابستگی‌ها (dependencies)

مشکلات امنیتی تصادفی رخ نمی‌دهند. آن‌ها به دلیل کامنت‌های "TODO" و اصلاحات "موقت" که برای همیشه در محیط عملیاتی (production) باقی می‌مانند، اتفاق می‌افتند.

رفع یک باگ خسته‌کننده است. رفع یک رخنه امنیتی پرهزینه است.

منبع: https://dev.to/justjinoit/nae-saideu-peurojegteu-boan-gamsa-gyeolgwa-buggeureobjiman-gongyuhabnida-3aj7