چگونه کازینو نظارت بر امنیت درخواست API
چرا امنیت API در iGaming بسیار مهم است
API - سیستم عصبی کازینو: شرط, کیف پول, میز پول نقد, ارائه دهندگان بازی, KYC/KYT, تله متری. هر سوراخ = پول، PII، مجوز، شهرت. برخلاف تجارت الکترونیک معمولی، کازینوها ویژگیهایی دارند: پول در زمان واقعی، مقررات، انگیزه بالای مهاجمان و یک ماتریس ادغام پیچیده.
اصول معماری (اسکلت حفاظتی)
1. اعتماد صفر و کمترین امتیاز ما به شبکه یا مشتریان اعتماد نداریم. هر تماس چک شده است، دسترسی به حداقل مورد نیاز (RBAC/ABAC).
2. جدا کردن دامنه دروازه های پول/PII/پول نقد/بازی - محیط ها و شبکه های مختلف، کلید ها و سیاست های مختلف.
3. دروازه API تنها. نقطه: mTLS، مدیریت WAF/ربات، OAuth2/JWT، محدودیت نرخ، تهدید تغذیه، ورود به سیستم.
4. مشاهدهپذیری پیشفرض. ردیابی، همبستگی «traceId»، هشدارها در مورد ناهنجاری ها (SLO/SIEM).
5. پیش فرض های امن نشانه های کوتاه TTL، ممنوعیت «گسترده» CORS، انکار به طور پیش فرض در NetworkPolicy.
احراز هویت و مجوز
تماس های بین سرویس: mTLS + JWT کوتاه مدت (5-10 دقیقه) با «aud/iss/kid» و چرخش کلید ؛ اختیاری HMAC امضای بدن.
یکپارچگی تماس - امضا، زمان، idempotence
امضای HMAC درخواست ارسال canonized: مرتب سازی پارامتر، سریال سازی JSON پایدار (بدون فضاهای غیر ضروری، همان ترتیب کلیدی)، هدر ها:
X-درخواست-زمان بندی: 2025-10-17T14:22:05Z
درخواست X-Nonce: 8c1c... فا
X-درخواست-امضا: v1 = HMAC-SHA256: base64 (...)
X-idempotency-کلید: c0a4-77f...
حفاظت از پخش: پنجره زمان معتبر (± 300 ثانیه)، چک کردن «nonce» در کش.
Idempotency-Key for money/webhooks: تکرار درخواست بدهی/اعتبار دوم ایجاد نمی کند.
mTLS به کیف پول/میز نقدی/ارائه دهندگان: رمزگذاری حمل و نقل + تأیید متقابل طرفین.
مثال پست امن:
پست/کیف پول/بدهی
نوع محتوا: کاربرد/json
X-درخواست-زمان بندی: 2025-10-17T14:22:05Z
درخواست X-Nonce: 8c1c0cfa
X-idempotency-کلید: 9a7f-2b1c
X-درخواست-امضا: v1 = HMAC-SHA256: Z2V... = =
{
"شناسه بازیکن":" p _ 123"، "مقدار":" 10. 00»، «ارز»:» EUR»، «دلیل»:» شرط. محل"، "roundId":" R-2025-10-17-PRAGM-12"
}
اعتبار سنجی ورودی: شماتیک و canonicalization
JSON Schema/OpenAPI به عنوان قرارداد. هر رشته - از طریق اعتبارسنجی انواع، محدوده ها و لیست های سفید (کدهای ISO ارزها/کشورها، وضعیت های enum).
محدودیت اندازه: اندازه بدن و آرایه ها را محدود کنید، لانه سازی «عمیق» را ممنوع کنید.
Canonicalization از JSON قبل از امضا/سیاهههای مربوط، غربالگری از شخصیت های خاص، سخت 'محتوا نوع'.
انتساب جمعی قفل کردن صریح اجازه دادن به فهرستهای حوزهها.
حفاظت از سطح: WAF، رباتها، سرعت
مدیریت WAF/ربات: امضا و تشخیص رفتاری (نرخ، جغرافیایی، اثر انگشت دستگاه).
محدودیت نرخ/سهمیه: توسط IP/token/client/method ؛ محدودیتهای جداگانه برای پول و غیر پول.
DoS/abuse-control: قطع کننده مدار، وقفه، فشار پشتی، «لیست خاکستری».
CORS: نقطه «دسترسی-کنترل-اجازه-منبع»، ممنوعیت wildcard و «مجوز» در مرورگر متقابل ریشه بی نیاز.
OWASP API Top-10 → اقدامات خاص
BOLA/BFLA) Broken Object/Function Level Auth): ABAC توسط مالک منبع، فیلترهای «playerId»، ممنوعیت شناسه های «خارجی».
تزریق/SSRF: درخواست های پارامتری، ممنوعیت URL های خارجی در تماس های سرور، allowlist میزبان.
قرار گرفتن در معرض اطلاعات بیش از حد: شکل دادن پاسخ ها (ماسک زمینه)، صفحه بندی، عادی سازی خطا بدون نشت بخشی.
پیکربندی نادرست امنیتی: وحدت نسخه TLS/cipher، سرصفحههای CSP/Permissions-Policy/Referrer-Policy.
مصرف نا امن از رابط های برنامه کاربردی: لفاف بسته بندی بیش از رابط های برنامه کاربردی ارائه دهنده با وقفه, retrays, deduplication.
PII و حریم خصوصی
نشانه گذاری PII و رمزگذاری (ویژگی های بازیکن، اسناد KYC): KMS/HSM، زمینه ها - AES-GCM.
به حداقل رساندن داده ها: در رویدادها/سیاهههای مربوط - فقط نام مستعار ('playerId')، هرگز - شماره سند/کارت.
نگهداری: TTL برای دامنه ها (کیف پول/بازی/ثبت نام نقدی) با توجه به الزامات حوزه های قضایی متفاوت است.
دسترسی نقش: تمایز خواندن PII در سطح پایگاه داده و خدمات (امنیت در سطح ردیف/سیاست).
وب سایت های امن و دفتر جعبه
تأیید دو عامل: mTLS به وب هوک + امضای HMAC ارائه دهنده.
ضد پخش: 'X-Idempotency-Key'، 'X-Timestamp'، پنجره زمان.
ارائه دهنده Allowlist IP/ASN، خروج استاتیک IP با ما.
بارهای «سمی»: محدودیت اندازه، نادیده گرفتن زمینه های استفاده نشده، طرح دقیق.
حسابرسی و نقطه پایانی تست: sandbox ارائه دهنده + تست قرارداد.
رازها و کلیدها
ذخیره سازی: KMS/HSM/Secrets-manager، هرگز در متغیرهای گیت/محیط بدون رمزگذاری.
چرخش: خودکار، «بچه» در هدر/ابرداده، لغو کلید های به خطر افتاده.
دسترسی: روش های شکستن شیشه، ورود به تمام دسترسی به اسرار.
سیاهههای مربوط، مسیرهای پیاده روی، هشدار
همبستگی: 'traceId/requestId/playerId/roundId' در هر لایه (ورود → API → کیف پول → ارائه دهنده → webhook).
ناهنجاری ها: افزایش «401/403/429»، رشد «VOID»، جهش «بهتر. رد» توسط منطقه، شکست HMAC/mTLS.
سیگنال های حمله: بسیاری از 'nonce' تکرار، قدیمی 'مهر زمان' attemts، بدن طولانی، ناشناخته 'بچه'.
ذخیره سازی ورود: تغییر ناپذیر (WORM)، منطقه دسترسی جداگانه، ماسک PII.
طرح تست و کنترل کیفیت
استاتیک/پویا AppSec: SAST/DAST در هر CI، امضاهای مخفی، وابستگی ها - SCA.
Pentests و ed-tim: اسکریپت های پخش، امضا در کانال اشتباه، دور زدن محدودیت نرخ، BOLA، SSRF.
تست قرارداد: برای OpenAPI/JSON-Schema، «موارد منفی».
هرج و مرج/تاخیر دریل: رفتار در وقفه از ارائه دهندگان/میز نقدی، صحت idempointency.
Bug-bounty: یک برنامه با محیط جداگانه و قوانین گزارش.
عناوین و تنظیمات مفید
'Strict-Transport-Security: حداکثر سن = 63072000 ؛ includeSubDomains ؛ پیش بارگذاری شده
'Content-Security-Policy: default-src' none '; فریم اجداد «هیچ» (برای دامنه های API)
«ارجاع دهنده-سیاست: بدون ارجاع»
'Permissions-Policy: geolocation = (), microphone = (), camera = ()'
'X-Content-Type-Options: nosniff'
'Cache-Control: no-store' در نقاط پایانی خصوصی
پاسخ خطا - فرمت واحد
جی سون
{«خطا «: «نامعتبر _ SIGNATURE»، «کد «: «SEC _ 401»، «traceId «:» tr _ 5f1»، «ts «:» 2025-10-17T14: 22: 06Z»}
ضد الگوها (که امنیت را از بین می برد)
نشانه های JWT/refresh طولانی مدت بدون چرخش و اتصال به دستگاه.
امضای «همانطور که هست» بدون canonicalization از JSON → عبور از چک.
فقدان «Idempotency-کلید» در پول/webhooks → دو نوشتن.
Wildcard-CORS و "in" Access-Control-Allow-Origin "برای نقاط پایانی با" مجوز ".
سیاهههای مربوط با PII/اسرار، دسترسی مشترک به سیاهههای مربوط «برای همه».
یک کلید مشترک HMAC برای همه یکپارچگی ها.
بدون محدودیت اندازه/عمق JSON، بدون وقفه و قطع کننده مدار.
خطاهایی که قطعات داخلی را نشان می دهد (ردیابی پشته، SQL، نسخه های کتابخانه).
چک لیست امنیت کازینو API
محیط و حمل و نقل
- mTLS در کانال های بین سرویس و ارائه دهنده ؛ TLS 1. 3 در همه جا
- دروازه API با مدیریت WAF/ربات، محدود کردن نرخ، تهدید تغذیه.
- CORS - فقط آدرس، بدون wildcard.
احراز هویت/مجوز
- OAuth2/OpenID برای مشتریان، JWT با TTL ≤ 10 دقیقه، چرخش کلید ('بچه').
- RBAC/ABAC توسط دامنه ؛ مدیر - SSO + MFA + IP-allowlist.
یکپارچگی و درخواست های مجدد
- امضای HMAC، 'X-Request-Timestamp'، 'X-Request-Nonce' و پنجره زمان.
- 'X-Idempotency-کلید' در پول، webhooks، پرداخت ؛ ذخیره سازی کلید در کش.
اعتبار سنجی
- OpenAPI/JSON-Schema، JSON canonicalization، محدودیت اندازه/عمق.
- ماسک و لیست های سفید برای زمینه ؛ ممنوعیت واگذاری جمعی.
PII و داده ها
- نشانه گذاری/رمزگذاری PII (KMS/HSM)، به حداقل رساندن، سیاست های نگهداری جداگانه.
- ذخیره سازی تقسیم برای PII/تله متری/پول.
یکپارچه سازی
- Webhooks: mTLS + HMAC، allowlist IP، ضد پخش، تست قرارداد.
- نقدی/رمزنگاری: دو ارائه دهنده و کلید/شبکه های مختلف، idempotency برای ورودی/خروجی.
قابل مشاهده بودن
- ردیابی با 'traceId/playerId/roundId'، هشدار به سیگنال های حمله.
- سیاهههای مربوط تغییر ناپذیر (WORM)، هیچ PII/اسرار.
فرآیند ها
- SAST/DAST/SCA در CI، pentests/ed-tim به طور منظم، bug-bounty.
- حوادث Runbooks: لغو کلید، عقبگرد، ارتباطات.
امنیت API در iGaming "قرار دادن WAF نیست. این سیستم عبارتند از: mTLS + signatures + idemotency، اعتبار سنجی دقیق و canonicalization، حفاظت از محیط و سرعت، جداسازی PII، وب سایت های ثبت نام نقدی امن، قابلیت مشاهده و چک های منظم. با ساخت این بخش از فرهنگ مهندسی، شما پول، بازیکنان و مجوز محافظت در حالی که حفظ سرعت محصول و ثبات انتشار.