PDA

View Full Version : گرفتن ادرس ip کاربر نهایی



nemo php
دوشنبه 28 اسفند 1391, 11:52 صبح
سلام من جایی خوندم که نمیشه ادرس ای پی یک فرد خاص رو گرفت ولی تو همون مطالب نوشته بود که :
برخی سرویس دهنده های پروکسی یک عدد httpبه نام X_FORWARDED_FOR که حاوی ادرس کاربر نهایی خواهد بورد را میفرستد.من متوجه نشدم امتحانم کردم جواب نداد میشه کمک کنید؟

if(getenv("http_x_forwarded_for)){
$ipaddr=getenv("http_x_forwarded_for);
}else
{
$ipaddr=$remot_adder}

eshpilen
دوشنبه 28 اسفند 1391, 12:40 عصر
همونطور که خودت هم گفتی، همهء پراکسی ها چنین هدرهایی ست نمیکنن.
این کاملا به اختیار خود پراکسی هست که چنین هدرهایی رو ست بکنه و درواقع IP کاربر رو به این روش لاگ/منتقل بکنه یا نه.
مثلا من دیروز یک لیست از سایتهای پراکسی رو داشتم نگاه میکردم کنار بعضی از اونا Anonymous یا Highly anonymous زده بود. Anonymous به معنای گمنام است.
طبیعتا انتظار نمیره یک پراکسی Anonymous بیاد و IP کاربران رو بفرسته برای طرف دیگر!

از طرف دیگر، اینطور هدرها رو خود کلاینت هم حتی بدون استفاده از پراکسی میتونه ست و درواقع جعل بکنه.
بنابراین شما نمیتونید روی صحت مقدار این هدرها حساب کنید، و اگر حساب کنید اونوقت میشه حفرهء امنیتی در برنامتون: http://www.hamidreza-mz.tk/?p=859

البته ممکنه لاگ کردن این هدرها از نظر امنیتی مفید باشه. ولی از نظر امنیتی نباید روشون اتکای مهمی کرد.
در کاربردهای غیرامنیتی هم که طبیعتا میشه استفاده کرد.
یا جایی که بهرحال خودتون این ریسک رو میپذیرید و مثلا میگید حالا کو کی از کجا میدونه کدوم هکری میخواد به سایت من گیر بده و با این روش کاری بکنه!!
شاید مثلا کاربران خودتون رو پخمه میبینید و احتمال ورود یک هکر حرفه ای رو هم نمیدید :بامزه:

بهرحال از نظر تخصصیش از ما گفتن بود.
من خودم چند وقت پیش توی فکر نوشتن یک Bot بودم که بره توی اینترنت بگرده و اینطور موارد رو پیدا کنه و تلاش به حمله های XSS و SQL Inject از این طریق بکنه. امکانش هست؛ ولی منکه علاقه و وقت و حوصلش رو ندارم.
البته روی سایتهایی که IP رو بلاک میکنن هم میشه براحتی این مسئله رو تست کرد.