Server Side Request Forgery
از Secure Coding
آسیب پذیری جعل درخواست در سمت سرور یا Server Side Request Forgery، به جعل درخواست های ارسالی از سمت اپلیکیشن به منابع در سمت سرور گویند که به واسطه آن مهاجم امکان دسترسی به سایر منابع اپلیکیشن را دارد.
برای مثال مهاجم درخواست دسترسی به سرور داخلی از سازمان با استفاده از آسیب پذیری موجود در اپلیکیشن و جعل درخواست های سمت سرور را دارد.
محتویات
نمونه کد آسیب پذیر[ویرایش]
$url = $_GET['url']; $data = file_get_contents($url); echo $data;
روش های جلوگیری[ویرایش]
۱) سیاست white-list[ویرایش]
PHP[ویرایش]
$allowed_domains = array("example.com", "example.org"); $url = $_GET['url']; if (in_array(parse_url($url, PHP_URL_HOST), $allowed_domains)) { $data = file_get_contents($url); echo $data; } else { echo "Invalid URL"; }
۲) صحت سنجی ورودی[ویرایش]
PHP[ویرایش]
$url = $_GET['url']; if (filter_var($url, FILTER_VALIDATE_URL)) { $data = file_get_contents($url); echo $data; } else { echo "Invalid URL"; }