قابلیت تعیین سطح دسترسی اسنپشات ICP به SDK جاوااسکریپت رسید؛ پشتیبانگیری به سیاست اشتراک نیاز دارد
آخرین نسخه SDK جاوااسکریپت کانسترهای ICP از تعیین سطح دسترسی اسنپشات پشتیبانی میکند و مدیریت دسترسی به نسخههای پشتیبان را در کد سادهتر میسازد. این قابلیت انتخاب میان دسترسی فقط برای کنترلرها، دسترسی عمومی یا فهرست مجاز را فراهم میکند؛ اما کنترلهای عملیاتی مربوط به بازیابی یا حذف اسنپشات را جایگزین نمیکند.

اسنپشات یک کانستر فقط نقطهای برای بازگشت نیست؛ این snapshot میتواند شامل ماژول Wasm، حافظه heap، حافظه پایدار، دادههای تأییدشده و دادههای chunk store باشد. بنابراین دسترسی به آن یک تصمیم امنیتی عملیاتی است؛ بهخصوص برای برنامههایی که دادههای خصوصی کاربران یا کسبوکار را نگهداری میکنند.
در changelog فعلی @icp-sdk/canisters، پشتیبانی از قابلیت تعیین سطح دسترسی اسنپشات برای نسخه 3.6.0 ثبت شده است. این تغییر با APIهای رابط و management canister در Internet Computer هماهنگ است و سه حالت controllers، public و allowed_viewers را ارائه میکند. کنترلرها همچنان به اسنپشاتها دسترسی دارند و حالت allowlist میتواند این دسترسی را به principalهای مشخص بدهد؛ حداکثر تعداد principalهای اضافی طبق مستندات ۱۰ مورد است.
تغییر مهم برای سازندگان جاوااسکریپت و TypeScript این است که این سیاست اکنون میتواند در همان لایه SDK مورد استفاده برای مدیریت کانسترها نمایش داده شود. این کار احتمال وابستگی خاموش ابزارهای مانیتورینگ، پشتیبانگیری یا مدیریت به رابط Candid قدیمی را کاهش میدهد. همچنین تصمیم دسترسی را وارد فرایند بازبینی کد میکند: تیم میتواند مشخص کند اسنپشات فقط برای کنترلرها قابل خواندن باشد، با چند principal بازیابی یا حسابرسی به اشتراک گذاشته شود، یا عمداً عمومی باشد.
با این حال، مرز امنیتی این قابلیت محدودتر از چیزی است که عبارت «مجوزهای اسنپشات» ممکن است القا کند. تنظیم visibility تعیین میکند چه کسانی میتوانند اسنپشاتها را فهرست کنند و metadata یا داده باینری آنها را بخوانند. مشخصات management canister جداگانه تصریح میکند که ایجاد اسنپشات، بارگذاری داده اسنپشات، بازیابی و حذف آن فقط برای کنترلرها مجاز است. بنابراین اشتراکگذاری یک نسخه پشتیبان برای بررسی، امکان بازگرداندن کانستر یا حذف نقاط بازیابی را ایجاد نمیکند.
یک خلأ مهم در ابزارها نیز باقی است. مستندات فعلی توسعهدهندگان میگوید snapshot_visibility هنوز از طریق icp.yaml یا فلگهای ICP CLI قابل تنظیم نیست و سازندگان باید آن را بهصورت برنامهنویسی از طریق management canister تنظیم کنند. تیمهایی که از SDK استفاده میکنند باید فراخوانی دقیق management canister را آزمایش کنند، تنظیم نهایی را بررسی کنند و فهرست مجاز را در بازبینی استقرار وارد سازند.
توصیه عملی ساده است: تعیین سطح دسترسی اسنپشات را بخشی از مدل تهدید پشتیبانگیری بدانید. دسترسی را بهصورت پیشفرض روی فقط کنترلرها بگذارید، برای فرایندهای محدود بازیابی یا حسابرسی از allowed_viewers استفاده کنید و public را فقط زمانی انتخاب کنید که محتوای اسنپشات عمداً قابل اشتراکگذاری باشد. پشتیبانی SDK کدنویسی این سیاست را آسانتر میکند، اما اسنپشات را بهطور پیشفرض برای انتشار امن نمیسازد.
خبرخوان را در ایمیل بگیرید
هر سیگنال تازه، مستقیم از خط تولید. بدون مزاحمت، لغو عضویت در هر زمان.


