PDA

View Full Version : سوال: استفاده از session برای امنیت



saeid.memfis
چهارشنبه 13 مرداد 1389, 11:30 صبح
سلام دوستان
من یه برنامه کتابخانه دیجیتال نوشتم ولی یه مشکل داره
اونم اینه که کاربر اگر لاگین هم نکند می تواند با نوشتن آدرس صفحه به صفحه هایی برود که حتما باید لاگین کرده باشد..پرسیدم میگن با session بزارم ولی یاد ندارم..ضمنا سرچ هم کردم:عصبانی++:
کسی میتونه به من کمک کنه
مرسی

LORD AELX
چهارشنبه 13 مرداد 1389, 11:45 صبح
استفاده از Session خیلی ساده است. ابتدا شما باید در هر صفحه و قبل از echo کردن هر چیزی، آن را start کنید:


session_start();


سپس شما قادر خواهید بود تا هر مقداری را در آرایه SESSION_$ ذخیره کنید. برای مثال به منظور ذخیره مقداری مبنی بر login بودن کاربر، به این شکل عمل می کنید:


$_SESSION['loggedIn'] = 'yes';


موفق باشید :قلب:

saeid.memfis
چهارشنبه 13 مرداد 1389, 11:48 صبح
استفاده از Session خیلی ساده است. ابتدا شما باید در هر صفحه و قبل از echo کردن هر چیزی، آن را start کنید:


session_start();


سپس شما قادر خواهید بود تا هر مقداری را در آرایه SESSION_$ ذخیره کنید. برای مثال به منظور ذخیره مقداری مبنی بر login بودن کاربر، به این شکل عمل می کنید:


$_SESSION['loggedIn'] = 'yes';


موفق باشید :قلب:
ممنون
یعنی در تمام صفحات اون استارت رو بزارم درسته؟
پس از $_SESSION['loggedIn'] = 'yes'; کجا استفاده کنم؟

LORD AELX
چهارشنبه 13 مرداد 1389, 11:56 صبح
ممنون
یعنی در تمام صفحات اون استارت رو بزارم درسته؟
پس از $_SESSION['loggedIn'] = 'yes'; کجا استفاده کنم؟

در هر صفحه ای که نیاز به کار با Session دارید، باید قبل از هر چیزی تابع ()session_start رو فراخوانی کنید.

مقدار ذخیره شده در آرایه session هم مثل هر متغیر و آرایه دیگری قابل استفاده می باشد و تا زمانیکه کاربر مرورگر را نبندد باقی خواهد ماند. مثلا می توانید آن را در یک if به منظور چک کردن login بودن کاربر قرار دهید:


if(isset($_SESSION['loggedIn'])) {
//...
}


یا اینکه دقیقا مقدار درونی آن را چک کنید:


if($_SESSION['loggedIn'] == 'yes') {
//...
}


موفق باشید :قلب:

kabotareazad
چهارشنبه 13 مرداد 1389, 14:59 عصر
تازه کجای کارین، میگن session هم امنیت نداره و میشه اون رو دزدید.
برای همین در هر صفحه باید دوباره ساختش یعنی regenerate کرد

LORD AELX
چهارشنبه 13 مرداد 1389, 15:22 عصر
تازه کجای کارین، میگن session هم امنیت نداره و میشه اون رو دزدید.
برای همین در هر صفحه باید دوباره ساختش یعنی regenerate کرد

بله، با Attack کردن سرور میشه Session رو دزدید و اونو تغییر داد که دیگه بحث کاملا امنیت کد نیست بلکه امنیت سرور هستش. از طرف دیگه منظورتون از regenerate رو متوجه نمیشم، چیز منطقی ای به نظر نمیاد!! :متفکر:

Sajjad.Aghapour
چهارشنبه 13 مرداد 1389, 16:06 عصر
از طرف دیگه منظورتون از regenerate رو متوجه نمیشم، چیز منطقی ای به نظر نمیاد!!

منطقی نیست؟
فقط کافیه یک نفر SessionID شما رو به هر شکلی بدست بیاره.اون وقت میتونه با سطح دسترسی شما به سایت دسترسی داشته باشه....

برای همین در مواقعی مانند Login کردن، Change Password و ... SessionID رو Regenerate کنید...

برای اطلاعات بیشتر به Google مراجعه کنید/

موفق باشید/

LORD AELX
چهارشنبه 13 مرداد 1389, 16:39 عصر
منطقی نیست؟
فقط کافیه یک نفر SessionID شما رو به هر شکلی بدست بیاره.اون وقت میتونه با سطح دسترسی شما به سایت دسترسی داشته باشه....


من که گفتم منظور ایشون رو متوجه نشدم! :لبخند: یعنی در مورد اون چیزی نشنیده بودم... :چشمک: الآن میرم می گوگلم، ببینم قضیه اش چیه... :متفکر:

:بوس: :قلب:

saeid.memfis
چهارشنبه 13 مرداد 1389, 19:32 عصر
از همه دوستان ممنون
هنوز امتحان نکردم ولی دمتون گرم
من تو تالار دیگه فعالیت دارم
اونجا مث اینجا خوب نیست..:ناراحت:

kabotareazad
پنج شنبه 01 مهر 1389, 10:34 صبح
منظور از regenerate کردن اینه که در یک مدت معین session id رو دوباره تولید کنیم تا امکان لو رفتن ان کم بشود :لبخند: