PDA

View Full Version : سوال: نحوه ي صحيح ذخيره كردن نام كاربري و رمز عبور ادمين سايت



ArtMiz
دوشنبه 19 اردیبهشت 1390, 11:46 صبح
درود
تو سايتي كه من نوشتم يه نام اكانت به عنوان ادمين سايت دارم. ميخوام ببينم كجا نگهش دارم بهتره؟ تو يه فايل يا جدول؟

.fatemeh
دوشنبه 19 اردیبهشت 1390, 12:04 عصر
سلام
به نظرم بهتره داخل جدول ذخیره کنید چون امنیتش بیشتره

ArtMiz
دوشنبه 19 اردیبهشت 1390, 17:44 عصر
ميشه دليلشو بگي؟ چه فرقي ميكنه؟ همون داده رو تو فايل ميذارم. يه جدول رو بذارم واسه يه دونه اكانت؟

Mahdi.Spirit
دوشنبه 19 اردیبهشت 1390, 19:16 عصر
صفحه ورودت مثل بقیه كاربراست؟ یا یه آدرس جدا داره؟

ghasemweb
دوشنبه 19 اردیبهشت 1390, 23:04 عصر
درسته كه شما نياز زيادي به جدول نداري ولي خب با ديد وسيع به مسائل كوچيك نگاه كن اينطوري تو مسير اصولي و سالم قرار ميگيري كه بعدا كارسازه اميدوارم با اين جملات ساده ام منظورم رو رسونده باشم.

ArtMiz
سه شنبه 20 اردیبهشت 1390, 10:58 صبح
صفحه ورودت مثل بقیه كاربراست؟ یا یه آدرس جدا داره؟بله، مدير سايت هستش و تو مسير خودش لاگين ميكنه


درسته كه شما نياز زيادي به جدول نداري ولي خب با ديد وسيع به مسائل كوچيك نگاه كن اينطوري تو مسير اصولي و سالم قرار ميگيري كه بعدا كارسازه اميدوارم با اين جملات ساده ام منظورم رو رسونده باشم.
حق با شماست دوست عزيز، ولي نميشه فايل رو جايي خارج از پوشه www قرار داد و اين طوري دسترسي رو سخت كرد يا اينكار مشكل امنيتي داره؟ بازم ميشه توضيح بيشتري بدين با بيان نكته امنيتي يا برنامه نويسي نه فقط نوشتن جمله ي تذكري؟

ممنونم از وقتي كه ميذارين

alonemm
سه شنبه 20 اردیبهشت 1390, 11:04 صبح
باسلام:
از نظر امنیت بهتره که در یک جدول در بانک اطلاعاتی ذخیره کنید و رمز عبور هم به صورت کد شده ذخیره کنید.


موفق باشید.

ArtMiz
سه شنبه 20 اردیبهشت 1390, 21:21 عصر
اي بابا؟ خوب چرا؟ يه چندتا دليل بيارين منم بفهمم خوب!

ghasemweb
سه شنبه 20 اردیبهشت 1390, 22:13 عصر
دليل بالاتر از امنيت داده ها !

numberone1
سه شنبه 20 اردیبهشت 1390, 22:19 عصر
من توي جدولي كه كاربر هارو ذخيره كردم مدير هم اونجا قرار دادم ولي با اين تفاوت كه براي مدير هر نام كاربري تايپ بشه اول با php چك ميكنم كه كاراكترهاي ورودي با اسم ادمين يكي هست يا نه بعد با جدول مقايسش ميكنم.
پسورد هم هش ميكنم.

ArtMiz
سه شنبه 20 اردیبهشت 1390, 23:28 عصر
دليل بالاتر از امنيت داده ها !
خوب يه مثال بزن منم تفهيم شم.


من توي جدولي كه كاربر هارو ذخيره كردم مدير هم اونجا قرار دادم ولي با اين تفاوت كه براي مدير هر نام كاربري تايپ بشه اول با php چك ميكنم كه كاراكترهاي ورودي با اسم ادمين يكي هست يا نه بعد با جدول مقايسش ميكنم.
پسورد هم هش ميكنم.
خوب يعني چه جوري؟ اين User و Password قابل تغييرن؟ اگه چه جوري ميفهمي يه پسورد ماله ادمين هست يا نه؟

من خودم اين كار رو ميكردم ولي مي خوام بدونم چه فرقي ميكنه؟ يه اكانت رو هش ميكنم ميذارم تو فايل ميذارم يه جايي خارج از روت سايت؟؟؟

numberone1
سه شنبه 20 اردیبهشت 1390, 23:40 عصر
خوب يه مثال بزن منم تفهيم شم.


خوب يعني چه جوري؟ اين User و Password قابل تغييرن؟ اگه چه جوري ميفهمي يه پسورد ماله ادمين هست يا نه؟

من خودم اين كار رو ميكردم ولي مي خوام بدونم چه فرقي ميكنه؟ يه اكانت رو هش ميكنم ميذارم تو فايل ميذارم يه جايي خارج از روت سايت؟؟؟
قاعدتا وقتي دستي مقدارشو چك ميكنم يعني اينكه اگر هم تغييرش بدم بايد كد هاشم تغيير بدم
خيلي سخت نيست.پسورد و هم با استفاده از يوزر نيم ميكشي بيرون بعد با ايني كه تايپ شده مقايسه ميكني.
مثلا


"admin" == $_post['username'];


اون كار و هم ميتوني بكني. من نگفتم توي فايل نزار

ArtMiz
چهارشنبه 21 اردیبهشت 1390, 00:36 صبح
خوب اينكه نميشه، بايد بشه توسط كاربر تغيير داده بشه.
در كل، سوال من چيزه ديگه بود. چرا اون كار رو هم ميتونم بكنم؟ يعني فرقي نمي كنه؟ اگه ميكنه چيه؟

sonia_1368
چهارشنبه 21 اردیبهشت 1390, 18:01 عصر
با سلام ، روش شخصی من استفاده از يک جدول تو پايگاه داده هست که سه تا ستون داره : نام کاربر ، کلمه عبور (که به صورت MD5 شده ذخيره می شه ) و نوع کاربر
اگه علاقمند باشيد ميتونيد دو تا ستون سوال امنيتی و جواب (باز به صورت MD5) رو هم اضافه کنيد که در صورت فراموش کردن کلمه عبور سوال امنيتی مطرح و جواب با جواب تو پايگاه مقايسه بشه

ArtMiz
چهارشنبه 21 اردیبهشت 1390, 19:18 عصر
روشتون كه زياد امنيتش خوب نيست، بهتره ز salt استفاده كنيد. ولي عزيز جان همين كار رو ميشه با فايل كرد.

واي، يكي بياد اينجا جواب منو بده!!!:گریه: كارم گير كرده!!!!:ناراحت:

ArtMiz
پنج شنبه 22 اردیبهشت 1390, 03:20 صبح
نبود كسي كمكمون بكنه؟

eshpilen
پنج شنبه 22 اردیبهشت 1390, 08:22 صبح
پسورد ادمین رو همراه با Salt مناسب هش کنید و در دیتابیس نگهداری کنید.
خوبی دیتابیس انعطاف اون هست و ضمنا اینکه براحتی قابل دسترسی نیست.

رضا قربانی
پنج شنبه 22 اردیبهشت 1390, 09:05 صبح
پسورد ادمین رو همراه با Salt مناسب هش کنید و در دیتابیس نگهداری کنید.
می شه با یه Salt مناسب مثال بزنید

eshpilen
پنج شنبه 22 اردیبهشت 1390, 12:50 عصر
function MakeSaltedHash($password) {

$chars='0123456789ABCDEF';
$salt='';
for($i=0; $i<64; $i++) $salt.=$chars[mt_rand(0, strlen($chars)-1)];

$shash=hash('sha256', $salt.$password);

return array('salt'=>$salt, 'shash'=>$shash);

}

function VerifySaltedHash($password, $salt, $shash) {

return hash('sha256', $salt.$password)==$shash;

}

یه مثال از روش استفاده:

موقع ثبت نام / ایجاد اکانت برای کاربر:

$arr=MakeSaltedHash('user password');
بعد شما باید $arr['salt'] و $arr['shash'] رو در رکورد اون کاربر ذخیره کنید. اصل پسورد رو هم ذخیره نمیکنید. بندازیدش دور!!

بعد برای چک کردن صحت پسوردی که کاربر در فرم لاگین وارد میکنه دوباره salt و shash مربوط به اون کاربر رو از دیتابیس میکشید بیرون و به اینصورت با پسوردی که کاربر ارسال کرده چک میکنید:


if(VerifySaltedHash($_POST['password'], $salt, $shash)) echo 'Correct.';
else echo 'Wrong!';

ArtMiz
پنج شنبه 22 اردیبهشت 1390, 14:43 عصر
يعني واسه يه اكانت يه جدول بسازم؟

ghasemweb
پنج شنبه 22 اردیبهشت 1390, 16:06 عصر
چرا شما علاقه داريد از فايلينگ استفاده كنيد اين روش ديگه منسوخ شده.چون شما اطلاعات زيادي نميخواهيد ذخيره كنيد بايد سراغ فايلينگ بريد؟ گير نده ديگه:چشمک:

eshpilen
پنج شنبه 22 اردیبهشت 1390, 17:46 عصر
يعني واسه يه اكانت يه جدول بسازم؟
واسه یه نفر که نه، برای کل کاربران یک جدول و به ازای هر کاربر یک رکورد/سطر.
خب دیتابیس واسه همین کاراس دیگه!
دیتابیس کار حذف و اضافه و ویرایش و مدیریت و استخراج اطلاعات رو برات راحت میکنه چون کارهای سطح پایین رو خودش انجام میده و شما فقط بهش میگی چیکار کنه یا چه اطلاعاتی رو با چه شرایطی میخوای استخراج کنه. زبان صحبت کردن باهاش برای این کارها هم SQL هست. دیتابیس فقط برای اطلاعات حجیم نیست.
خیلی وقته همه اینطور کارا رو با دیتابیس انجام میدن :متفکر:

ArtMiz
جمعه 23 اردیبهشت 1390, 02:08 صبح
چرا شما علاقه داريد از فايلينگ استفاده كنيد اين روش ديگه منسوخ شده.:چشمک:
عجب!


گير نده ديگه:چشمک:
باشه


واسه یه نفر که نه، برای کل کاربران یک جدول و به ازای هر کاربر یک رکورد/سطر.
واسه كاربران رو كه ميدونم، فقط واسه يه نفر گفتم شايد كار بي خودي باشه.

ممنونم از جوابتون دوستان محترم