هنگامی که میخواهیم کاربر را به صفحهای دیگر هدایت کنیم، میبایست اطمینان به دست آوریم که نشانی مقصد، معتبر است و آن چیزی است که ما انتظار آن را داریم. برای مثال هنگامی فرض کنید سایتی داریم که کاربر برای دسترسی به بخشی از آن میبایست در سایت وارد شده باشد. طبیعی است که در چنین مواقعی ممکن است بخواهیم کاربر را به صورت خودکار به صفحهی ورود هدایت کنیم و علاوه بر آن مشخص کنیم که پس از ورود به کدام صفحه بازگشت پیدا کند.
در این مواقع معمولا آدرس صفحهی فعلی را به صفحهی ورود ارسال میکنیم تا در صورت موفقیت ورود، به همین صفحه هدایت شود.
اگر اصول امنیتی لازم در این فرآیند رعایت نشود، افراد خرابکار ممکن است کاربر را از جایی خارج از سایت به صفحهی ورود ما هدایت کنند و آدرس بازگشت را صفحهای خارج از سایت ما قرار دهند. انجام این کار میتواند باعث فریب دادن کاربر و دریافت اطلاعات حساس از او شود. زیرا تصور میکند که پس از ورود به سایت ما وارد شده است.
برای جلوگیری از این رخداد، با کمک تابع زیر، قبل از هدایت کاربر میتوانیم بررسی کنیم که آیا نشانی صفحهی مقصد، با دامنهی سایت فعلی یکسان است یا نه…
function urls_in_same_domain( $url1, $url2 ) { $domain1 = strtolower( parse_url( $url1, PHP_URL_HOST ) ); $domain2 = strtolower( parse_url( $url2, PHP_URL_HOST ) ); return ( $domain1 == $domain2 ); }