امنیت API صرافی برای ربات رمزارز؛ مجوز برداشت را پیش از اتصال خاموش کن
امنیت API صرافی برای ربات رمزارز یعنی کمکردن سطح دسترسی و کنترل اجرای واقعی، نه اعتمادکردن به تنظیمات پیشفرض. داراییهای رمزارزی پرنوساناند؛ این نوشته آموزشی است و توصیه مالی یا تضمین امنیت و سود نیست.
ربات به مجوز برداشت نیاز ندارد
برای ارسال و لغو سفارش، بیشتر رباتها به مجوز برداشت دارایی نیاز ندارند. این مجوز را خاموش کن و دسترسی را به خواندن و معامله محدود کن. اگر کلید اجازه انتقال دارد، یک خطای نرمافزاری یا سرقت کلید میتواند سرمایه را از حساب خارج کند. سطح دسترسی را با کار واقعی ربات مقایسه کن، نه با تنظیم پیشفرض صرافی.
IP و اندازه سفارش را محدود کن
IP allowlist، سقف اندازه سفارش، فهرست جفتهای مجاز و سقف زیان روزانه، آسیب خطای برنامه را کاهش میدهد. این محدودیتها جایگزین بررسی کد نیستند. اگر ربات از سرور یا شبکهای غیرمنتظره وصل شد، kill switch باید سفارشهای تازه را متوقف کند. تغییر تنظیمات را با زمان و نام اپراتور ثبت کن تا بعداً معلوم باشد چه کسی چه چیزی را عوض کرده است.
کلید را در کد و پیام نگه ندار
API key و secret را در مخزن عمومی، فایل جاوااسکریپت، چت یا گزارش لاگ قرار نده. از secret manager و متغیر محیطی محدود استفاده کن. لاگ میتواند زمان، جفت، مقدار، قیمت و شناسه سفارش را نگه دارد، اما نباید secret یا کد احراز هویت را ذخیره کند. کلید آزمایشی را از کلید حساب واقعی جدا کن و دسترسی قدیمی را حذف کن.
تلاش دوباره میتواند سفارش تکراری بسازد
وقتی درخواست API timeout میشود، نبود پاسخ به معنی اجرا نشدن سفارش نیست. از client order id یکتا، idempotency و بررسی وضعیت سفارش قبل از retry استفاده کن. اگر ربات بدون پاسخ دوباره بازار را صدا بزند، ممکن است دو سفارش بسازد. مقدار باز، موجودی و تاریخچه اجرا را پیش از تلاش دوباره تطبیق بده.
قیمت و لغزش را قبل از ارسال کنترل کن
ربات نباید فقط آخرین قیمت را بخواند. spread، عمق دفتر، اندازه سفارش، کارمزد و قیمت متوسط احتمالی را بررسی کن. اگر عمق کم است، سفارش را کوچکتر یا متوقف کن. در بازار پرنوسان، سطحهای دفتر جابهجا میشوند و قیمت محاسبهشده میتواند کهنه باشد. شرط لغزش حداکثری را پیش از ارسال در کد ثبت کن.
اهرم و لیکوئیدیشن را جدا بررسی کن
در قراردادهای دائمی، funding، mark price، maintenance margin و liquidation rule را بخوان. وجود API امن به معنی امنبودن اهرم نیست. سقف اهرم، حداکثر زیان، اندازه پوزیشن و شرط خروج اضطراری را جدا تعیین کن. وقتی ربات یا صرافی در وضعیت نگهداری است، اجرای خودکار باید به حالت توقف برود.
هشدارهای صرافی را جدی بگیر
فهرستشدن، حذفشدن، توقف برداشت، تغییر tick size یا maintenance میتواند منطق ربات را invalid کند. قبل از فعالکردن سفارش، وضعیت رسمی صرافی و محصول را بررسی کن. پیام خصوصی یا لینک پشتیبانی ناشناس را معتبر ندان. هیچکس از پشتیبانی واقعی نباید password، 2FA یا seed phrase بخواهد.
پس از اجرا گزارش امنیتی بساز
زمان، endpoint، جفت، مجوز فعال، سفارش، قیمت، کارمزد، پاسخ API و اقدام kill switch را ذخیره کن. یک اجرای موفق ثابت نمیکند که تنظیمات همیشه درست بودهاند. اگر کلید افشا شد، آن را از صفحه رسمی revoke کن، کلید جدید بساز و لاگ دسترسی را بررسی کن. تغییرات را پیش از بازگشت به معامله کوچک آزمایش کن.
یادداشت امنیتی را کنار گزارش معامله نگه دار. بنویس کدام مجوز فعال بود، کدام endpoint پاسخ نداد، چه زمانی retry انجام شد و چه شرطی اجرای ربات را متوقف کرد. بعد از هر تغییر، ابتدا با مبلغ کوچک آزمایش کن و سپس به اندازه معمول برگرد. اگر چیزی قابل توضیح نیست، سرعت اجرای خودکار دلیل ادامهدادن نیست.
چکلیست API
- مجوز برداشت خاموش و مجوزها حداقلی هستند؟
- IP، اندازه سفارش، جفت مجاز و kill switch تعریف شدهاند؟
- secret در کد، چت یا لاگ قرار نگرفته است؟
- idempotency و بررسی وضعیت قبل از retry وجود دارد؟
- اهرم، funding، margin و liquidation جدا کنترل شدهاند؟
برای زمینه ریسک به اطلاعات FINRA درباره داراییهای رمزارزی و هشدار CFTC برای کنترل ریسک مراجعه کن. هیچ سیستم خودکاری بدون خطا نیست. مرکز ریسک معامله رمزارز · ادامه خوشه دری CryptoSigy