ابزار خواندن لینک باید از دسترسی به مقصدهای داخلی و حساس جلوگیری کند. آدرس واردشده توسط کاربر یا سند نباید مجوز ارتباط آزاد سرور با شبکه تلقی شود.
مسئله را درست تعریف کنیم
خطر فقط متن آدرس نیست؛ نام دامنه، پاسخ DNS و تغییر مسیر میتوانند مقصد واقعی را عوض کنند. دفاع باید در لایه درخواست و خروج شبکه اعمال شود.
روش اجرا
- مقصد مجاز را پیش از ارتباط بررسی کنید.
- آدرس حلشده و هر تغییر مسیر را دوباره با سیاست تطبیق دهید.
- مرز خروج شبکه و محدودیت زمان و حجم را مستقل برقرار کنید.
نمونه آموزشی
در محیط آموزشی جدا، ابزار برای خواندن یک صفحه عمومی طراحی شده است. اگر صفحه به مقصد ممنوع ارجاع دهد، آزمون باید توقف را ثبت کند و هیچ درخواست واقعی به زیرساخت داخلی سازمان نفرستد. شاهد موفقیت، رد درخواست است نه متن پاسخ مدل.
آزمون تکمیلی برای تصمیم عملی
مسیر یک درخواست آزمایشی را از ورودی کاربر تا جزء برقرارکننده اتصال ترسیم کنید. روشن کنید چه بخشی آدرس را میخواند، چه بخشی آن را تجزیه میکند و چه بخشی واقعاً اتصال شبکه را میسازد. اگر محدودیت فقط در رابط یا پرامپت قرار دارد، مسیر مستقیم ابزار ممکن است همان تصمیم را اعمال نکند. در کاربرگ، مقصد تجزیهشده، روش درخواست و سیاست اعمالشده را ثبت کنید. هیچ آزمونی علیه نشانی داخلی یا سامانهای که مجوز بررسی آن را ندارید انجام ندهید؛ این مثال برای طراحی محیط آزمون خودتان است.
در محیط کنترلشده، رفتار تغییر مسیر و تغییر مقصد نهایی را هم بررسی کنید. مجازبودن نشانی اولیه بهتنهایی اجازه مقصد بعدی نیست. لایه برنامه و شبکه باید درباره محدوده لازم برای همان کار توافق داشته باشند و حالت نامعلوم به اجازه پیشفرض تبدیل نشود. گزارش را بدون داده محرمانه یا نشانی حساس نگه دارید. نتیجه یک درخواست ردشده، محافظت کامل در برابر همه شکلهای SSRF را اثبات نمیکند؛ روش تجزیه، قواعد مقصد، مسیرهای شبکه و رفتار ابزار در خطا باید جدا بررسی شوند.
جدول کار برای همین موضوع
| فیلد ثبت | کاربرد در تصمیم |
|---|---|
| شناسه آزمون | مورد ساختگی رد مقصد ممنوع |
| نوع مقصد | عمومی مجاز یا داخلی ممنوع |
| نتیجه DNS | نشانی حلشده باید با سیاست سازگار باشد |
| وضعیت تغییر مسیر | هر hop مجوز مستقلی میخواهد |
| تصمیم سیاست | رد قبل از ارسال به مقصد ممنوع |
| ثبت رد | ثبت فقط شناسه آزمون و دلیل رد |
فایل قابل استفاده
دریافت فرم CSV این راهنما. هر سطر را با اطلاعات پروژه خود تکمیل کنید. خانه نامعلوم را نامشخص بگذارید؛ نبود شاهد را با عدد صفر یا تأیید جایگزین نکنید. فایل شامل اطلاعات مشتری واقعی نیست و برای ثبت بررسی به کار میرود.
محدودیت و تصمیم بعدی
این مقاله دفاعی است و نشانی یا دستور بهرهبرداری ارائه نمیکند؛ تنظیم دقیق به معماری شبکه وابسته است.
منبع فنی برای مطالعه بیشتر
OWASP: Server Side Request Forgery Prevention. مثالها و فرم این مطلب برای آموزش طراحی شدهاند و نتیجه مشتری یا آزمون محصول نیستند.
ادامه مطالعه مرتبط
پس از اعمال کنترل شبکه، برای بررسی معنی مقصد عمومی مجاز، پاسخ چت درست است اما لینک خراب؛ چکلیست مقصد پاسخ را ببینید.
برای بررسی فنی دقیقتر، راهنمای پیشگیری SSRF در OWASP را بخوانید؛ مثال و کاربرگ این مقاله آموزشیاند و تأیید امنیت سامانه واقعی نیستند.