# سیاستهای امنیتی (Security Policy)
فارسی | English
| نسخه | وضعیت پشتیبانی |
|---|---|
| 0.1.x-beta | ✅ |
برای گزارش آسیبپذیریهای امنیتی، لطفاً از بخش گزارش خصوصی آسیبپذیری گیتهاب (تب Security در صفحه اصلی ریپازیتوری) استفاده کنید و از طرح عمومی آن در Issue یا PR خودداری فرمایید.
لطفاً در گزارش خود موارد زیر را قید کنید:
- نام پکیج و نسخه آسیبپذیر
- مراحل بازتولید مشکل
- ارزیابی سطح اثرگذاری آسیبپذیری
زمان هدف برای پاسخگویی اولیه: حداکثر ۷ روز کاری.
- مدیریت کلیدهای دسترسی: کلیدهای
ApiKey/ نامکاربری و رمز عبور هرگز در سورسکد قرار نمیگیرند و در کلاینتها بهصورتstringخصوصیِ فقطخواندنی نگهداری میشوند؛ بارگذاری آنها باید ازIConfiguration،UserSecretsیا Key Vault و از طریق متغیر محیطی انجام شود. - عدم نشت پاسخ خام: فیلد
IranSmsException.RawResponseBodyممکن است متن پیام یا شماره گیرنده را در بر داشته باشد؛ هرگز آن را در لاگ عمومی، پاسخ HTTP یا ذخیره بلندمدت ننویسید — فقطProviderNameوProviderStatusCodeرا لاگ کنید. - عدم جعل شناسه: در صورت نبودِ
MessageIdاز سمت اپراتور، هیچ شناسه ساختگی تولید نمیشود وIranSmsExceptionباRawResponseBodyپرتاب میگردد. - مالکیت
HttpClient: چرخه عمرHttpClientوHttpMessageHandlerکاملاً در اختیار مصرفکننده است؛ کتابخانه هیچHttpClientسراسری نمیسازد. - حدود اعتبارسنجی ورودی: هر کلاینت محدودیتهای اپراتور (مثلاً سقف گیرندگان انبوه و طول پیام) را پیش از ارسال شبکه بررسی و
ArgumentExceptionپرتاب میکند. - ایمن در محیط چندنخی: کلاینتها فاقد وضعیت متغیرِ مشترک بوده و در فراخوانی همزمان ایمن هستند.
- کاهش وابستگیهای خارجی: هسته پروژه بدون هیچ وابستگی خارجی است و هر ارائهدهنده تنها به
Coreوابسته است. - حفظ حریم خصوصی: این کتابخانه هیچ داده شخصی را ذخیره نمیکند و تنها عملیات ارسال و استعلام را انجام میدهد.
- تایماوت HTTP: اگر HttpClient تزریق نشود، تایماوت پیشفرض HttpClient (۱۰۰ ثانیه) اعمال میشود؛ برای کنترل دقیق، HttpClient اختصاصی با Timeout دلخواه به سازنده کلاینت تزریق کنید.