PDA

View Full Version : مقاله: سوال درباره تابع: ('PASSWORD('$pass



fatahyegane
پنج شنبه 18 شهریور 1389, 11:32 صبح
سلام دوستان

من يه مشکل تو سيستم لاگين کاربر دارم .مشکل مال اين تابع است.
('PASSWORD('$pass
البته موقع درج هم از تابع ('PASSWORD('$pass استفاده ميکنم ولي اونجا مشکلي پيش نمياد اما تو خط پایین فقط شرط مساوي بودن نام رو بررسي ميکنه و پسورد رو بررسي نميکنه.

"SELECT * FROM userlist WHERE name='$name' AND password=PASSWORD('$pass')"
ممنون ميشم اگه راهنمايي کنيد.

bestirani2
پنج شنبه 18 شهریور 1389, 12:04 عصر
یعنی هر پسوردی میزی وارد میشه؟
ظاهراً که این قسمت مشکلی نداره

ali zi zeperto
پنج شنبه 18 شهریور 1389, 14:41 عصر
سلام دوستان

من يه مشکل تو سيستم لاگين کاربر دارم .مشکل مال اين تابع است.
('PASSWORD('$pass
البته موقع درج هم از تابع ('PASSWORD('$pass استفاده ميکنم ولي اونجا مشکلي پيش نمياد اما تو خط پایین فقط شرط مساوي بودن نام رو بررسي ميکنه و پسورد رو بررسي نميکنه.

"SELECT * FROM userlist WHERE name='$name' AND password=PASSWORD('$pass')"ممنون ميشم اگه راهنمايي کنيد.

"select * from userlist where name='$name' and password=password($pass)"

sama01
پنج شنبه 18 شهریور 1389, 21:43 عصر
ظاهرا عملکرد تابع PASSWORD در نسخه‌های پیش و پس از 4.1 متفاوته.
آیا اطلاعات‌تان را در همین سرور وارد کرده‌اید؟

البته حتما به این توصیه‌ی خود mysql توجه داشته باشید:

Note: Using MySQL's password() function in your own applications isn't recommended - the algorithm used has changed over time and prior to 4.1 was particularly weak.
You may decide to use MySQL to calculate your hash rather than PHP
استفاده از این تابع توصیه نمی‌شه.

fatahyegane
جمعه 19 شهریور 1389, 10:39 صبح
یعنی هر پسوردی میزی وارد میشه؟
ظاهراً که این قسمت مشکلی نداره

بله موقع ثبت کاربر هر پسوردی میدم تو دیتابیس به صورت کد شده ذخیره میشه.مشکل موقع لاگین کردن که شرط مساوی بودن پسورد رو بررسی نمیکنه.
"INSERT INTO userlist VALUES('','$name',password('$pass'))"

fatahyegane
جمعه 19 شهریور 1389, 10:42 صبح
ظاهرا عملکرد تابع PASSWORD در نسخه‌های پیش و پس از 4.1 متفاوته.
آیا اطلاعات‌تان را در همین سرور وارد کرده‌اید؟

البته حتما به این توصیه‌ی خود mysql توجه داشته باشید:

استفاده از این تابع توصیه نمی‌شه.

Php من نسخه 5 که اگه مشکل داشته باشه باید تو ثبت هم داشته باشه ولی ثبتش مشکلی نداره.این هم کل کدهامه که چیز زیادی نیست.

sama01
جمعه 19 شهریور 1389, 11:29 صبح
البته منظور من، نسخه‌ی mysql‌ بود.
ولی اگر هم insert و هم select رو در یک سرور انجام داده‌اید، این بحث منتفی است.

اصولا نباید مشکلی باشه.
من هم هر چی می چرخم، مشکلی در sql‌ شما نمی‌بینم.

احیانا محدودیت طول برای فیلد password رو چند گذاشته‌اید؟ یه وقت کم‌تر از 41 نباشه.
یه بررسی کنید.

ولی کلا به جای استفاده از password از md5 استفاده کنید.

bestirani2
جمعه 19 شهریور 1389, 13:09 عصر
با تست و خطا باید ببینی مشکل چیه


select password('$pass') = password

رو اجرا کنید و ببینید، نتیجه 1 میشه یا نه؟

fatahyegane
شنبه 20 شهریور 1389, 01:58 صبح
از راهنمایی هاتون خیلی ممنونم
مشکل همون تو طول فیلد بود که 40 گذاشته بودم .
اما فرق دو تابع password و md5 با هم چیه ؟

Hell Lord
شنبه 20 شهریور 1389, 06:06 صبح
از راهنمایی هاتون خیلی ممنونم
مشکل همون تو طول فیلد بود که 40 گذاشته بودم .
اما فرق دو تابع password و md5 با هم چیه ؟
md5 تابع پی اچ پی است.
password مربوط به mysql است.:لبخندساده:

funpatogh
شنبه 20 شهریور 1389, 12:57 عصر
md5 تابع پی اچ پی است.
password مربوط به mysql است.:لبخندساده:
password() مربوط به mysql هست؟
اینت ابع رو خود کاربر فکر کنم نوشته و مربوط به بانک اطلاعاتی نمیشه
شاید هم من نمیدونم اما اگه هست میشه یکم اطلاعات در موردش بدهید؟

Hell Lord
شنبه 20 شهریور 1389, 13:06 عصر
password() مربوط به mysql هست؟
اینت ابع رو خود کاربر فکر کنم نوشته و مربوط به بانک اطلاعاتی نمیشه
شاید هم من نمیدونم اما اگه هست میشه یکم اطلاعات در موردش بدهید؟
بفرمایید
http://dev.mysql.com/doc/refman/5.1/en/password-hashing.html

:لبخندساده:

sama01
شنبه 20 شهریور 1389, 17:46 عصر
البته MD5 هم تابع php است و هم تابع mysql.
SHA1 هم یکی از توابع رمزنگاری هم در php و هم در mysql است.

bestirani2
شنبه 20 شهریور 1389, 18:39 عصر
تفاوتشون در نوع هش کردنشون هست

sama01
شنبه 20 شهریور 1389, 19:03 عصر
اگر نوع رمزنگاری‌شان متفاوت نبود که یک تابع کافی بود!!!

بحث چیز دیگری بود.
من گفتم به جای password از md5 استفاده کنند.
این سوال مطرح شد که فرقشان چیست و دوستی پاسخ داد که md5 تابع تابع php است.
من گفتم که خیر. md5 هم تابع php است و هم Mysql. و sha1 هم همین‌طور.