مصاحبه با سازنده اسکنر فایل متنباز pompelmi برای امنیت آپلود
گفتوگو با توماسو برتوچی درباره pompelmi، اسکنر آپلود Node.js که بدون ذخیره فایل و با استفاده از جریان داده، بمبهای فشرده و بدافزارها را در لحظه شناسایی میکند.
چرا هنوز اسکنر آپلود مهم است
در دنیایی که هوش مصنوعی نوشتن کد ناامن را آسان کرده، آپلود فایل همچنان یکی از قدیمیترین و خطرناکترین مسیرهای حمله به برنامههاست. pompelmi پروژهای متنباز و ساختهشده با Node.js است که میخواهد بدون دردسر، این شکاف امنیتی را ببندد. توماسو برتوچی، سازنده آن، در این مصاحبه توضیح میدهد چرا آپلود فایل «بهظاهر ساده» میتواند منجر به اجرای کد دلخواه، از کار افتادن سرویس یا دور زدن فیلترهای سطحی شود.
چگونه بدون ذخیره فایل اسکن میشود
هسته pompelmi روی جریان داده (Stream) و حافظه رم کار میکند؛ فایل هنگام آپلود بایتبهبایت بررسی میشود و اگر بمب فشرده یا امضای مشکوکی پیدا شود، بلافاصله متوقف میشود. به این ترتیب نیازی به نوشتن روی دیسک یا راهاندازی سرویس جانبی نیست و کاهش لیتنسی شبکه حاصل میشود.
سیاستهای پیشفرض و انعطاف YARA
برای اینکه توسعهدهنده با صفحه خالی مواجه نشود، مجموعهای از قوانین آماده مانند جلوگیری از ZIP bomb، تطابق MIME با Magic Byte و محدودیت منابع در نظر گرفته شده است. در عین حال میتوان با قوانین YARA سفارشی، امضاهای جدید را بدون تغییر کد اضافه کرد.
چرا Node.js انتخاب شد
انتخاب Node.js صرفاً تجربه توسعهدهنده (DX) را هدف گرفته است؛ چون بیشتر چارچوبهای وب مدرن (React، Next.js، NestJS) در همین اکوسیستم هستند، ادغام pompelmi بدون نیاز به Runtime اضافی یا IPC پیچیده انجام میشود.
- آپلود فایل ناامن میتواند به اجرای کد، DOS یا دور زدن فیلترها منجر شود.
- اسکن درونفرآیندی و Stream-based باعث سرعت و عدم نیاز به ذخیره موقت است.
- قوانین پیشفرض امنیت پایه را تأمین میکند و YARA امکان سفارشیسازی را میدهد.
- سازنده بهدنبال حمایت سازمانی برای تبدیل پروژه شخصی به یک ساختار مستقل و پایدار است.
- بازخورد مستقیم کاربران از طریق Issue و PR مهمتر از تعداد ستارههاست.
«هدف من این است که امنیت آپلود بهصورت پیشفرض در اختیار همه توسعهدهندگان قرار گیرد، نه فقط آنهایی که تخصص عمیق امنیتی دارند.»
«بزرگترین چالش غیرمنتظره، سازگاری با چارچوبهای مختلف Node.js بود؛ هرکدام آپلود را با middleware یا lifecycle متفاوتی مدیریت میکنند.»
با پیادهسازی لایهای ساده اما قوی در مسیر آپلود، pompelmi میخواهد نشان دهد که امنیت لازم نیست دشوار باشد؛ کافی است ابزار مناسب در اختیار توسعهدهنده قرار بگیرد تا وب برای همه امنتر شود.

