یک نکته ی جالب ( آموزش )

من نگفتم از این توابع به هیچ وجه استفاده نکنید.یک مورد مثال اوردم که اگه به این سبک عمل کنید هک میشید.چند سیستم هم دیدم از این روش استفاده کردن هک شدن.


کد:
Do not use [B]extract()[/B] on untrusted data, like user-input     ([URL="http://ir.php.net/manual/en/reserved.variables.get.php"]$_GET[/URL], ...)


[url]http://ir.php.net/extract[/url]

موفق باشید .
 
آخرین ویرایش:

D.A.V.O.O.D

Member
نه !
ما میگیم تابع extract تابع جالبیه ، ولی نه واسه هر جایی !
هر تایعی که جالبه رو که نمیشه هر جایی استفاده کرد !

من خودم به شخصه واسه $_GET و $_POST پیشنهادش نمی کنم ، اما تابعی به درد بخور توی خیلی جاهای دیگه است !
برای مثال ، می تونه کار foreach رو برای یه آرایه بکنه ، بهینه تر می کنه forearch رو ( البته به شرطی که مقدار اول آرایه عددی نباشه )
 
آخرین ویرایش:
دوستان فکر کنم پی اچ پی هم گفته من رو در مورد $_GET و $_POST قبول کرده باشه .

Do not use extract() on untrusted data, like user-input ($_GET, ...). If you do, for example, if you want to run old code that relies on register_globals temporarily, make sure you use one of the non-overwriting extract_type values such as EXTR_SKIP and be aware that you should extract in the same order that's defined in variables_order within the php.ini.
نوشته اگه زمانی بخواید این کارو کنید بجای استفاده از اکسترت register_globals رو فعال کنید که اول ورودی ها تبدیل به متغیر بشن بعد تویه کد نویسی اگه جایگزینی داشتن جایگزین بشن نه اینکه خود ورودی گت باشه!
 

parsiteam

Member
PHP:
// URL: file.php?reza=Hijacking

$reza = "test";

extract($_GET);

echo $reza;


من فقط با این مثال قانع شدم که باید دقت کرد توی برنامه نویسیش . ولی کلا کارش جالبه . ممنون
 

jigartalaa

Member
درسته داوود جان . هر تابعی کارایی خودشو داره . و در نوع خودش جالبه اما بهتره برای ارسال مقادیر و کد نویسی در بعضی جاها ازش استفاده نشه !
 

جدیدترین ارسال ها

بالا