Register Globals چیه و چرا خطرناکه؟

PHP

توسط php1 در 4 سال پیش
0 403 1 4 سال پیش
php1php-sec
0

سلام میخواستم بدونم این Register Globals تو پی اچ پی چیه که همه میگن خطرناکه و باید چیکارش کرد تا کدمون امن بشه؟ ممنون

0

سلام وقتی register_globals فعال باشه میشه از URL مقدار یک متغییر توی اسکریپت رو تغییر داد که این بسیار خطرناکه مثال:

<?php
if(user_is_admin($user))
{
    $authorized = true;
}

if($authorized)
{
	echo "You are in god mode!";
}
else{
	echo "Your are a user!";
}
?>

این کد مثلا چک میکنه که آیا کابر فعلی admin هست یا خیر و این رو تابعuser_is_admin مشخص میکنه و اگر کاربر فعلی ادمین بود مقدار $authorized رو True میکنه. حالا اگر register_globals فعال باشه میشه به این صورت براحتی سطح دسترسی رو به ادمین رسوند:

file.php?authorized=1

هر چند این ویژگی در ورژن های جدید PHP غیر فعاله اما میتونید با چک کردن فایل php.ini یا گرفتن ()phpinfo فعال یا غیر فعال بودن این ویژگی رو متوجه بشید. برای غیر فعال کردن باید این کد رو در فایل php.ini بذارید: register_globals = Off

خوش آمدید

برای طرح سوال، ایجاد بحث و فعالیت در سایت نیاز است ابتدا وارد حساب کاربری خود شوید. در صورتی که هنوز عضو سایت نیستید میتوانید در عرض تنها چند ثانیه ثبت نام کنید.

لطفا ابتدا لاگین کنید