PDA

View Full Version : فرستاده شدن پسورد در header



kamalhamidi
جمعه 07 مرداد 1390, 17:39 عصر
سلام

من یه صفحه لوگین دارم که توی این صفحه پسورد کاربر رو با یه رشته اضافی md5 میکنم و توی کوکی قرار میدم.

امروز متوجه شدم که اسکرپیتم پسورد اصلی کاربر رو توی header میفرسته..

header ویبلوتین رو چک کردم و دیدم که اون پسورد رو به صورت هش شده میفرسته و خبری از پسورد اصلی نیست..!

لذا خواستم ببینم، من چطور میکنم از فرستاده شدن پسورد اصلی در header جلوگیری کنم!؟ چطوری میکنم به صورت هش درش بیارم!؟

در ضمن من نمیتونم از ssl استفاده کنم!

تشکر.

mr.zenith
جمعه 07 مرداد 1390, 19:48 عصر
سلام
ممکنه از get به جای post دارین استفاده می کنید.

kamalhamidi
جمعه 07 مرداد 1390, 20:41 عصر
نخیر.. من از پست استفاده میکنم!

جالب اینجاست که توی همه اسکریپتهایی که امتحان کردم، پسورد به header فرستاده میشه به غیر از ویبلوتین!

eshpilen
جمعه 07 مرداد 1390, 21:06 عصر
امروز متوجه شدم که اسکرپیتم پسورد اصلی کاربر رو توی header میفرسته..کدوم اسکریپت؟ برای چه کاری، کجا؟
هدر مورد نظر اسمش چیه؟
نترس اسکریپتت رو نمیخوریم!

kamalhamidi
جمعه 07 مرداد 1390, 21:35 عصر
نمیدونم اسم این رو مشکل بذارم یا نه، چون توی همه اسکرپیتهایی که امتحان کردن پسورد به header فرستاده میشه! البته به غیر از ویبلوتین..!

منظورم از header همون اطلاعاتی هست که بین مرورگر و سرور رد و بدل میشه!

اسکرپیت من هم کامل نشده که بخوام منتشرش کنم! :لبخند:

eshpilen
جمعه 07 مرداد 1390, 21:51 عصر
ببین اون هدر اسمش چیه و بعد در ابتدای اسکریپت خودت اینطور عمل کن:

header('password: x');
در اینجا بجای password باید اسم هدر مورد نظر باشه.
بعد دوباره هدرها رو بررسی کن ببین پسورد اصلی توی هدرها هست یا نه.
احتمالا این هدری که شما میفرستی هدر تولید شده رو Override بکنه.
البته باید دید این کار مشکلی در کارکرد برنامه بوجود نمیاره.
ضمنا این رو درصورت قابل استفاده بودن هم باید یه روش موقتی و غیراصولی تلقی کرد. اصلش این هست که ببینی اون هدر در کجا و چرا تولید میشه و راه اصولی برای حذفش چی هست. شاید در بعضی شرایط هدر قبلی Override نشه و همچنان ارسال بشه.

kamalhamidi
شنبه 08 مرداد 1390, 00:40 صبح
پسورد توسط خود مرورگر فرستاده میشه! یعنی وقتی کاربر پسورد رو توی فیلد وارد میکنه و دکمه سابمیت رو میزنه، پسورد به سرور فرستاده میشه!


http://localhost/site/login.php

POST /site/login.php HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:5.0) Gecko/20100101 Firefox/5.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
DNT: 1
Connection: keep-alive
Referer: http://localhost/site/login.php
Cookie: bblastvisit=1311948668; bblastactivity=0; bbuserid=1; bbpassword=c97bec0472de758f45623c386d19f2c4; PHPSESSID=pofdtr0ae41n96rnogl037ili5
Content-Type: application/x-www-form-urlencoded
Content-Length: 140
csrf=suLT9PbKFyAdeDTei66qFvUSkCakFXxP&username=admin&password=123&submit=%D9%88%D8%B1%D9%88%D8%AF+%DA%A9%D8%A7%D8%B1 %D8%A8%D8%B1%D8%A7%D9%86
HTTP/1.1 200 OK
Date: Fri, 29 Jul 2011 20:22:18 GMT
Server: Apache/2.2.17 (Win32) mod_ssl/2.2.17 OpenSSL/0.9.8o PHP/5.3.4 mod_perl/2.0.4 Perl/v5.10.1
X-Powered-By: PHP/5.3.5
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: om_password=98739607ec48144952ac1024104c599b; expires=Sat, 28-Jul-2012 20:22:18 GMT
Set-Cookie: om_id=1; expires=Sat, 28-Jul-2012 20:22:18 GMT
Content-Length: 3136
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html

پسورد و نام کاربری منم توی این خطه:

csrf=suLT9PbKFyAdeDTei66qFvUSkCakFXxP&username=admin&password=123&submit=%D9%88%D8%B1%D9%88%D8%AF+%DA%A9%D8%A7%D8%B1 %D8%A8%D8%B1%D8%A7%D9%86


البته این رو هم بگم که همه اسکرپیتها اینطور عمل میکنم...!

mr.zenith
شنبه 08 مرداد 1390, 01:10 صبح
دوست عزیز مسلما متد پست هم اطلاعات را روی هوا نمی فرسته. توی هدر میفرسته فقط توی آدرس نیست.
شما باید اطلاعات را کد کنی تا مشکلی پیش نیاد.

eshpilen
شنبه 08 مرداد 1390, 08:48 صبح
اولا که مسلما وقتی کاربر پسوردش رو برای اولین بار (قبل از اینکه لاگین باشه) وارد میکنه این پسورد به سرور ارسال میشه.
دوما پسورد در هدر ارسال نمیشه بلکه در بدنهء درخواست ارسال میشه و در نمونه ای که شما گذاشتید هم همینطوره.
اشکالی هم درکار نیست. مهم اینه که پسورد در سمت کلاینت ذخیره نشه.