Skip to content

Security: NimaHp/IranSMS

Security

SECURITY.md

# سیاست‌های امنیتی (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 دلخواه به سازنده کلاینت تزریق کنید.

There aren't any published security advisories