حالا بهتر میفهمم چرا بعضی SDKهای جدید، مخصوصاً در اکوسیستمهایی مثل Telegram Mini Apps، تا این حد روی zero-dependency بودن حساس شدهاند.
ماجرا فقط سبکتر شدن پکیج یا کم شدن حجم bundle نیست. بحث اصلی امنیت زنجیره تأمین است.
وقتی یک SDK وابستگی خارجی ندارد، یعنی با نصب آن، یک زنجیره بلند از پکیجهای ناشناس، maintainerهای مختلف، workflowهای جداگانه و releaseهای غیرقابلردیابی وارد پروژه نمیشود.
در اکوسیستم npm، خطر فقط خود پکیجی نیست که نصب میکنیم. خطر واقعی گاهی در dependencyهای عمیقتر است؛ همان پکیجهای کوچکی که مستقیم نمیشناسیم، اما در زمان install یا build میتوانند کد اجرا کنند.
اتفاق TanStack دقیقاً همین را دوباره یادآوری کرد. مهاجم لازم نداشت مستقیم به اپلیکیشن نهایی حمله کند. کافی بود بخشی از مسیر build، cache و release را آلوده کند تا نسخههای مخرب از چند پکیج منتشر شوند.
برای همین zero-dependency یک تصمیم صرفاً فنی نیست؛ یک تصمیم امنیتی است.
یعنی تیم توسعه میگوید تا وقتی واقعاً مجبور نیستیم، اعتمادمان را بین دهها پکیج و maintainer پخش نمیکنیم. هر dependency جدید، فقط چند کیلوبایت کد اضافه نیست؛ یک نقطه اعتماد جدید است.
البته zero-dependency یعنی ریسک کمتر، نه امنیت مطلق. خود همان پکیج هم ممکن است compromise شود، release pipeline آن هم ممکن است آسیب ببیند، اما حداقل سطح حمله کوچکتر میشود.
پس وقتی میبینیم یک SDK جدی تلاش میکند بدون dependency خارجی کار کند، دلیلش فقط performance نیست. بخشی از ماجرا این است که هک کردنش سختتر شود، audit کردنش سادهتر باشد و زنجیره اعتمادی که وارد پروژه میکند کوتاهتر بماند.
درس ساده ماجرا:
در دنیای امروز، هر دپندنسی یک تصمیم امنیتی است، نه فقط یک انتخاب فنی.
البته شما از tanstack استفاده کنین اینجا ایرانه چرخ از اول اختراع نکنین خواهشا خداروشکر ما ها اینترنت نداریم که هک بشیم ( البته کاش داشتیم هک میشدیم ولی وضعمون این نبود )
@codehalics | کدهالیک
Post #606
662
کدهالیک | codehalic صبح زیباتون رو با خبر هک TanStack شروع کنیم؛ همون اکوسیستمی که React Query یا TanStack Query از دلش اومده. طبق گزارش Snyk، در حمله زنجیره تأمین npm، دهها پکیج @tanstack آلوده منتشر شده و هدف اصلی هم سرقت اطلاعات و توکنهای CI/CD بوده. https://tanstack.com/blog/npm…
- 👍 5