فایل ورودی را در محیطی با دسترسی محدود، سقف منابع و خروجی کنترلشده پردازش کنید. پسوند یا نام آشنا، بیخطر بودن محتوای واقعی فایل را ثابت نمیکند.
مسئله را درست تعریف کنیم
استخراج متن ممکن است پردازشگر پیچیده، فایل فشرده یا محتوای فعال را درگیر کند. ابزار تبدیل نباید به کل شبکه و رازهای میزبان دسترسی داشته باشد.
روش اجرا
- نوع واقعی و اندازه فایل را قبل از پردازش اعتبارسنجی کنید.
- تبدیل را بدون امتیاز اضافی و با محدودیت زمان و حافظه اجرا کنید.
- خروجی و مسیر ذخیره را جدا کنترل و وضعیت شکست را ثبت کنید.
نمونه آموزشی
در نمونه آموزشی، یک فایل آزمایشی بسیار حجیم از حد پذیرش بیشتر است. سامانه باید پیش از تبدیل آن را با پیام روشن رد کند، نه اینکه منابع سرور را مصرف کند. برای آزمون، فایل بیخطر و کنترلشده کافی است.
آزمون تکمیلی برای تصمیم عملی
برای تمرین، گردش یک فایل ساختگی را از دریافت تا استخراج متن و حذف موقت مشخص کنید. در هر مرحله بنویسید چه جزءی فایل را باز میکند، چه اختیاری دارد و آیا ارتباط شبکه لازم است. نام فایل یا نوع اعلامشده از سوی فرستنده، بهتنهایی نوع واقعی محتوا را ثابت نمیکند. محدودیت اندازه و انواع لازم باید از نیاز وظیفه بیاید؛ پذیرش همه فایلها برای راحتی کاربر، تصمیم امنیتی بیاثر نیست. این راهنما فایل ناشناختهای را روی سامانه واقعی اجرا نمیکند.
در محیط جداگانه، رفتار فایل نامعتبر، خطای استخراج و توقف پردازش را با انتظار مشخص بررسی کنید. اگر پردازش شکست خورد، معلوم باشد فایل موقت کجا مانده و چه کسی به آن دسترسی دارد. فایل دریافتی نباید با نام دلخواه فرستنده روی محتوای موجود نوشته شود یا از مسیر عمومی قابل اجرا باشد. در کاربرگ، دریافت موفق را از استخراج موفق و از تأیید امنبودن جدا ثبت کنید. هیچ بررسی منفردی مانند پسوند یا امضای فایل محافظ کامل نیست؛ روش اجرا و نگهداری نیز به کنترل نیاز دارند.
جدول کار برای همین موضوع
| فیلد ثبت | کاربرد در تصمیم |
|---|---|
| نوع فایل | پسوند ادعایی فایل |
| نوع واقعی | نوع شناساییشده با محتوا تطبیق یابد |
| اندازه | حد پیش و پس از بازکردن فشرده |
| حد پردازش | زمان و حافظه پردازش محدود باشد |
| مجوز محیط | بدون دسترسی راز و شبکه غیرلازم |
| نتیجه پذیرش | رد فایل بزرگ پیش از تبدیل ثبت شود |
فایل قابل استفاده
دریافت فرم CSV این راهنما. هر سطر را با اطلاعات پروژه خود تکمیل کنید. خانه نامعلوم را نامشخص بگذارید؛ نبود شاهد را با عدد صفر یا تأیید جایگزین نکنید. فایل شامل اطلاعات مشتری واقعی نیست و برای ثبت بررسی به کار میرود.
محدودیت و تصمیم بعدی
محیط محدود مصونیت مطلق نیست؛ بهروزرسانی پردازشگر و پایش شکستها همچنان لازم است.
منبع فنی برای مطالعه بیشتر
OWASP: File Upload. مثالها و فرم این مطلب برای آموزش طراحی شدهاند و نتیجه مشتری یا آزمون محصول نیستند.
ادامه مطالعه مرتبط
برای دیدن کنترل خروجی یک فرایند استخراج PDF، جدول PDF در چت بههم میریزد؛ آمادهسازی منبع قبل از اتصال را ببینید.
برای بررسی فنی دقیقتر، راهنمای دریافت فایل در OWASP را بخوانید؛ مثال و کاربرگ این مقاله آموزشیاند و تأیید امنیت سامانه واقعی نیستند.