مدل مسئولیت
امنیت یک لایه جداگانه در انتهای پروژه نیست. احراز هویت، مجوزدهی، حفاظت داده و مشاهدهپذیری باید همراه با flow اصلی محصول طراحی شوند.
احراز هویت و کنترل دسترسی
پلتفرم از NextAuth با session مبتنی بر JWT و نقشهای مجزا استفاده میکند. مسیرهای admin و dashboard در لایه proxy محافظت میشوند و APIهای حساس باید مجوز را در سمت سرور نیز بررسی کنند.
- اصل کمترین سطح دسترسی برای نقشها
- اعتبارسنجی مجدد مجوز در Route Handler
- عدم اعتماد به role یا userId ارسالی از کلاینت
ورودی و داده
تمام دادههای ورودی باید پیش از استفاده یا ذخیره با schema معتبر شوند. فایلهای بارگذاریشده به کنترل نوع، اندازه و نام امن نیاز دارند.
- اعتبارسنجی Zod در مرز ورود داده
- استفاده از queryهای parameterized از طریق Prisma
- خودداری از نمایش جزئیات خطای داخلی به کاربر
- حذف یا ماسککردن داده حساس در logها
تهدیدهای مخصوص سیستمهای AI
محتوای بازیابیشده، خروجی مدل و دستورهای موجود در فایلها داده غیرقابلاعتماد هستند و نباید مستقیماً اختیار اجرای ابزار یا دسترسی جدید ایجاد کنند.
- جداسازی دستور سیستم از محتوای کاربر و اسناد
- allowlist برای ابزارها و مقصدهای شبکه
- تأیید انسانی برای عملیات پرریسک
- ارزیابی prompt injection و data exfiltration پیش از انتشار
گزارش مسئله امنیتی
برای گزارش محرمانه یک آسیبپذیری، جزئیات بازتولید و اثر احتمالی را از طریق صفحه تماس برای تیم توسی ارسال کنید و از انتشار عمومی پیش از هماهنگی خودداری کنید.