session چيست ؟!

NabiKAZ

Well-Known Member
سلام
من زیاد با این session کار نکردم . درست متوجه نمشم کارشو ... البته یه چیزایی فهمیدم که میگم ، شما بگید درسته یا نه .

متغییرهایی که به صورت session تعریف میشن ، اینجوری:
PHP:
$_SESSION['majidonline']=1
در تمام صفحات مقدارشون رو حفظ میکنند و البته موقتی ایجاد میشن و با بستن پنجره از بین میرن . شبیه کوکی ها عمل میکنند.
فکر میکنم حفظ مقادیرشون بین فرم ها توسط session_start(); صورت میگیره.
همچنین به نظرم رسید بشه برای لوگین های موقتی و فوری ازشون استفاده کرد و دیگه از کوکی ها که کمی بد قلق هستند(چون باید قبل از ارسال هر کارکتر به مرورگر فراخوانی بشن!) استفاده نکرد.
یه کد کوچیک هم نوشتم واسه لوگین با سشیون ها ، که نمیدونم از نظر امنیتی چطوریه ! لطفا راهنمایی کنید ممنون میشم .

PHP:
<?
session_start();
$Flag=$_REQUEST['Flag'];
$username=$_POST['username'];
$password=$_POST['password'];
if ($Flag==1) {
	 if ($username=="admin" && $password=="admin") {
	 		$_SESSION['majidonline']=1;
	 }
}
if ($Flag==2) {
	 		$_SESSION['majidonline']="";
}
if ($_SESSION['majidonline']!==1) {
print "<form method=\"POST\" action=\"$_SERVER[PHP_SELF]\">";
print "	<p><input type=\"text\" name=\"username\"></p>";
print "	<p><input type=\"text\" name=\"password\"></p>";
print "	<p><input type=\"submit\" value=\"Submit\"></p>";
print "	<input type=\"hidden\" name=\"Flag\" value=\"1\">";
print "</form>";
die();
}
print "<p>SESSION is= " . $_SESSION['majidonline'];
print "<p>Flag= " . $Flag;
print "<p><a href=\"$_SERVER[PHP_SELF]?Flag=2\">logout!</a></p>";
?>

تشکر
نبی
 

Salman_MP

Member
ببخشیدا ولی فکر میکنم سشن تمامی متغیر ها رو توی سرور نگهداری میکنه ولی کوکی بچه بازی تر از این حرفاست. متغيرا توی یه فایل تکست روی کامپیوتر کلاینت ذخیره میشه و مابین ابندو تقاوتی است عظیم !!! D:
 
آخرین ویرایش:

Majid

مدیر سایت
عضو کادر مدیریت
کار با Session خیلی منطقی تر ، اصولی تر ، امن تر هستش نسبت به Cookie


مجید
 

miladmovie

Active Member
من در چندجا خوندم حتی خوده session ها ( البته به شکل معمولی که در php هست)
رو زیر سوال می بردند
و می گفت که باید یک جوری این متغیر session هاتون رو در دیتابیس ذخیره کنید
البته فکر کنم کدهای چنین کاری آماده توی وب هم باشه
 

oxygenws

Active Member
من در چندجا خوندم حتی خوده session ها ( البته به شکل معمولی که در php هست)
رو زیر سوال می بردند
و می گفت که باید یک جوری این متغیر session هاتون رو در دیتابیس ذخیره کنی
دقیقا چنین هست میلاد جان....
و البته به قول خودت کد های آماده اش هم هست. :)

ولی در نهایت باز باید تاکید کنم که سشن به طور پیشفرض از کوکی هم استفاده می کنه :)
 

amir_s

Active Member
آيا براي ساخت لوگين ... بايد هم يوزرنيم و هم پسورد رو توي سشن ذخيره كرد و براي باز كردن هر صفحه سري اون هارو چك كرد ... يا ميشه اعتماد كرد و اگر سشني با نام مثلا username ست شده بود صفحه سري رو نشون داد ؟
 

miladmovie

Active Member
بله اون رو که می گی درسته ! چون اگر ID سشن من رو توی کوکی ذخیره نکنه هر کسی بتونه ID سشن رو کش بره می تونه از اون سشن استفاده کنه

در مورد سوال دوستمون هم من همیشه پسورد رو به وسیله md5 کد می کنم و می زارم توی سشن بعد هر صفحه چک می کنم
فکر نکنم این یک query اضافی زیاد فشار بیاره حداقل می تونی ادعا کنی حداکثر تلاشت رو کردی که کسی به سیستم نفوذ کنه !

حالا بقیه هم بیان نظر بدن !
 

oxygenws

Active Member
هر کسی بتونه Id سشن رو کش بره می تونه از اون سشن استفاده کنه
میلاااااد جان..... مطمئنی؟؟
فکر نکنم چنین باشه. تاجایی که من می دونم، ساختار سشن از این حرف ها پیشرفته تر و دقیق تره (و البته با تغییراتی میشه از حالت پیش فرض هم دقیق تر و بهتر کار کنه) فکر کنم اطلاعات دیگه ای هم ذخیره بشه... مثل Ip. (این فقط مثال بود هااا)
 

miladmovie

Active Member
والا من این رو توی کتاب php5 professional خوندم !
توی کتاب داشت تعریف می داد که اگر سشن از کوکی استفاده نکنه چنین امکانی داره !
من بیگناهم :neutral: :)
 

MnavidM

Active Member
با سلام.

خوب , حالا یه چیزی !!

اگه به شما بگن یه سیستم بنویسید که امنیت هم توش مهم باشه , از چه روشس استفاده می کنید و یا چه روشی رو

پیشنهاد میکنید ؟

نوید.
 

zfarhad2003

Member
اگه دوستان اجازه بدن منم وارد بحث بشم؟

در مورد استفاده از سشن در صورتی که Id اون برای کسی معلوم باشه باید بگم که این کار برای یه کاربر ساده غیرممکنه. این موردی که میلاد جان اشاره کرد روی سرورهای اشتراکی است که روی یک سرور چندین سایت قرار داره و در نتیجه اگه وب مستر یکی از سایتها از Id های سشن سایت دیگه ای رو همان سرور اطلاع داشته باشه می تونه به راحتی از اون استفاده کنه (البته نه به اون راحتی ها هم)

اما در مورد این مشکل بیشتر Php کارهای حرفه ای ترجیح می دن که سشن هایی رو که دارای اطلاعات مخصوص و مهمی است به جای ذخیره کردن اتوماتیک در فایل در دیتابیس ذخیره کنن که فوق العاده امنیت بالایی خواهد داشت و دیگه با دونستن Id سشن هم کاری نمی شه کرد.
 

NabiKAZ

Well-Known Member
سلام ؛
از oxygenws, Salman_MP, Salman_MP, Majid, iranexplorer.net, miladmovie, amir_s, Doste,zfarhad2003 ممنونم که در بحث شرکت کردند.

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

از نوشته های دوستان استفاده بردم . و تقریبا در مورد این مقوله روشن شدم. فقط کسی نظرش رو در مورد کد ابتدای تاپیک ذکر نکرد.

متشکرم
نبی
 

جدیدترین ارسال ها

بالا