Server Side Request Forgery: تفاوت بین نسخه‌ها

از Secure Coding

(صفحه‌ای تازه حاوی «آسیب پذیری جعل درخواست در سمت سرور یا Server Side Request Forgery، به جعل درخواست های ارس...» ایجاد کرد)
 
 
سطر ۱۶: سطر ۱۶:
 
== روش های جلوگیری ==
 
== روش های جلوگیری ==
  
۱) سیاست white-list
+
=== ۱) سیاست white-list ===
  
=== روش های جلوگیری در PHP ===
+
==== PHP ====
  
 
<div lang="en" dir="ltr" class="mw-content-ltr">
 
<div lang="en" dir="ltr" class="mw-content-ltr">
سطر ۳۴: سطر ۳۴:
  
  
۲) صحت سنجی ورودی
+
=== ۲) صحت سنجی ورودی ===
 +
 
 +
==== PHP ====
  
 
<div lang="en" dir="ltr" class="mw-content-ltr">
 
<div lang="en" dir="ltr" class="mw-content-ltr">

نسخهٔ کنونی تا ‏۲۳ مارس ۲۰۲۳، ساعت ۱۴:۳۱

آسیب پذیری جعل درخواست در سمت سرور یا 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";
}