PDA

نسخه کامل مشاهده نسخه کامل : session و login كاربران



David.Jn
30-08-2008, 14:49
سلام
میخواستم نظرات دیگران را در این موارد بدونم

1-من تو سیستم لاگینم وقتی کاربری لاگین میشه دو تا سشن بهش اختصاص میدم یکی برای مشخص نمودن وضعیت کاربر که آیا لاگین شده یا نه و یکی دیگه هم نام کاربری رو توش نگه میداره.
حالا میخواستم بدونم نگه داشتن نام کاربری در داخل سشن از نظر امنیت چطوره؟
ضمنآ اینم بگم من با سشنی که نام کاربری توش قرار داره خیلی کار دارم .مثلآ برای ثبت نظرات(دیگه لازم نیست کاربر نام و ایمیل خودش را بده از طریق همین سشن یه query از بانک میگیرم و ذخیره می کنم).
حالا به نظرتون روشی امنتر وجود داره؟یا همین روش خوبه.
خودم یه روش دیگه به نظرم رسید که id کاربر را تو سشن ذخیره کنم ولی به نظرم زیاد فرق نکنه.

2-ادمین هم از همون صفحه ای که دیگران لاگین میشن لاگین میشه و یه سشن بر حسب نام کاربیش بهش اختصاص داده میشه.
حالا من اومدم تویه هر صفحه ای که فقط ادمین میتونه مشاهده کنه یه شرط گزاشتم که اگه محتوای سشن کاربری برابر بود با فلان چیز بتونه صفحه را ببینه در غیر اینصورت یه پیغام بهش داده بشه.

این چطور از نظر امنیت در چه وضعی؟
راه دیگه ای به نظرتون میرسه برای نمایش دادن صفحات مخصوص ادمین؟

3-روشی که تو قسمت دوم گفتم به نظرم زیاد منطقی نیست چون شاید من بخوام 10تا ادمین داشته باشم و یه ادمین ارشد. اونوقت باید برای همشون یه شرط بزارم دیگه.
حالا شاید بعضیا بگن خوب برای 10 تاشون کد معمولیه مثل هم ه ولی برای ادمین ارشد باید یه کد دیگه بزاری.
بله درسته ولی فرض کنید 10 تا ادمین هم با سطوح دسترسی مختلف باشن .
شما چه روشی پیشنهاد میکنین.

pezhman32
30-08-2008, 15:05
سلام
سشن ها تا جایی که من اطلاع دارم تقریبا" از نظر امنیتی مشکلی ندارن و امنیتشون غیر قابل مقایسه با امنیت کوکی هاست, اما بهتر داده هاتون در سشن ها کد شده باشن

David.Jn
30-08-2008, 15:33
سشن ها تا جایی که من اطلاع دارم تقریبا" از نظر امنیتی مشکلی ندارن و امنیتشون غیر قابل مقایسه با امنیت کوکی هاست


برمنکرش لعنت!!!!

من از ترس حملات Xss گفتم


بهتر داده هاتون در سشن ها کد شده باشن

از چه تابعی واسه کد کردن سشن استفاده کنم؟ (چون توابع زیادی واسه کد کردن وجود داره).
آیا تابعی مجزا واسه کد کردن سشن وجود داره؟

در مورد قسمت دوم و سوم نظری ندارین؟

pezhman32
30-08-2008, 16:18
برمنکرش لعنت!!!!

من از ترس حملات Xss گفتم

از چه تابعی واسه کد کردن سشن استفاده کنم؟ (چون توابع زیادی واسه کد کردن وجود داره).
آیا تابعی مجزا واسه کد کردن سشن وجود داره؟

در مورد قسمت دوم و سوم نظری ندارین؟
راستش من برای کد کردن در این مواقع از md5 استفاده می کنم و مثلا" نام کاربری تمام افراد رو از بانک اطلاعاتیم به صورت یه حلقه می گیرم و نام کاربری و چیزای دیگشو که لازم باشه رو با md5 کد می کنم و با اونی که توی سشن هست مقایسه می کنم (چون md5 دیکد نمیشه)
بهتره مثلا" برای مدیر ارشدتون مثلا" کد 1 و مدیر معمولیتون کد 2 و .. و کاربر معمولی کد 3 و افراد غیر عضو کد 4 رو در نظر بگیرید و در بالا ی هر صفحه یه اسکریپت اینکلود کنید که نام کاربری شخص رو چک کنه و یکی از این اعداد رو که در بانک اطلاعاتیتون ذخیره شده در دسترس اسکریپت مادر بزاره مثلا در اسکریپت اینکلود شده یه تابع یا کلاس قرار بدین و خروجی اون هم یک آرایه مثل زیر باشه:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

MAXXX
01-09-2008, 21:29
من معمولا برایه ادمین صفحه هایه جدا طراحی میکنم
شاید به نظر سخت و اضافه کاری بیاد ولی اگه از دریم ویور و تمپلیت و دیتابیس استفاده بشه خیلی سادست و ساختن تمام صفحات ادمین نیم ساعت هم وقت نمیبره

ahmadirad1365
04-09-2008, 14:14
سلام
میخواستم نظرات دیگران را در این موارد بدونم

1-من تو سیستم لاگینم وقتی کاربری لاگین میشه دو تا سشن بهش اختصاص میدم یکی برای مشخص نمودن وضعیت کاربر که آیا لاگین شده یا نه و یکی دیگه هم نام کاربری رو توش نگه میداره.
حالا میخواستم بدونم نگه داشتن نام کاربری در داخل سشن از نظر امنیت چطوره؟
ضمنآ اینم بگم من با سشنی که نام کاربری توش قرار داره خیلی کار دارم .مثلآ برای ثبت نظرات(دیگه لازم نیست کاربر نام و ایمیل خودش را بده از طریق همین سشن یه query از بانک میگیرم و ذخیره می کنم).
حالا به نظرتون روشی امنتر وجود داره؟یا همین روش خوبه.
خودم یه روش دیگه به نظرم رسید که id کاربر را تو سشن ذخیره کنم ولی به نظرم زیاد فرق نکنه.

2-ادمین هم از همون صفحه ای که دیگران لاگین میشن لاگین میشه و یه سشن بر حسب نام کاربیش بهش اختصاص داده میشه.
حالا من اومدم تویه هر صفحه ای که فقط ادمین میتونه مشاهده کنه یه شرط گزاشتم که اگه محتوای سشن کاربری برابر بود با فلان چیز بتونه صفحه را ببینه در غیر اینصورت یه پیغام بهش داده بشه.

این چطور از نظر امنیت در چه وضعی؟
راه دیگه ای به نظرتون میرسه برای نمایش دادن صفحات مخصوص ادمین؟

3-روشی که تو قسمت دوم گفتم به نظرم زیاد منطقی نیست چون شاید من بخوام 10تا ادمین داشته باشم و یه ادمین ارشد. اونوقت باید برای همشون یه شرط بزارم دیگه.
حالا شاید بعضیا بگن خوب برای 10 تاشون کد معمولیه مثل هم ه ولی برای ادمین ارشد باید یه کد دیگه بزاری.
بله درسته ولی فرض کنید 10 تا ادمین هم با سطوح دسترسی مختلف باشن .
شما چه روشی پیشنهاد میکنین.

:8:دوست عزیز شما برای به نتیجه رسیدن از یک منطق نا معقول دارید استفاده میکنید
چون حوصله نوشتن زیاد هم ندارم فقط بگم در C#.net 2005 برای رسیدن به حدف شما با نهایت امنیت فقط چند کلیک و کمتر از چند خط کد نویسی بیشتر لازم نیست.
اگر شما این کار رو با منطقی که دارید زیر بار ترافیک بگذارید مطمئن باشید سایت شدیدا با مشکل مواجه میشود به طور مثال در سایت acmt.ac.ir در هنگام ثبت نام ترم جدید همواره مشکل وصل شدن به پنل دانشجویی وجود دارد چون به صورت مفرط از سشن و کد نویسی زیاد برای راهی ساده استفاده شده است:27:

David.Jn
04-09-2008, 17:50
اگر شما این کار رو با منطقی که دارید زیر بار ترافیک بگذارید مطمئن باشید سایت شدیدا با مشکل مواجه میشود به طور مثال در سایت acmt.ac.ir در هنگام ثبت نام ترم جدید همواره مشکل وصل شدن به پنل دانشجویی وجود دارد چون به صورت مفرط از سشن و کد نویسی زیاد برای راهی ساده استفاده شده است[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ](33).gif

سلام
ممنون
ولی انگار متوجه نشدید من دارم با php کد می نویسم تو اینجا که ابزار Net. وجود نداره.

اساتید بزرگ php کم لطف شدن نمیان نظر بدن.

neopersia
04-09-2008, 23:32
در مورد سوال اول به نظر من بهتره فقط id کاربر رو نگه داری و همه رکوردها رو بر اساس id بنویسی.
بهتره دسترسی ها رو بر اساس گروه کاربری انجام بدی. اینجوری خیلی از مشکلات حل میشه. یعنی همون اول که کاربر لوگین میشه گروه کاربریشو به دست بیاری بعد بر اساس اون اجازه مشاهده صفحات رو بهش بدی. حالا میتونه مدیر باشه یا مدیر ارشد یا کاربر ویژه یا کاربر مجانی.

یه پیشنهاد هم دارم اونم استفاده از روش شیء گرا هست. من که دیگه اصلاً نمیتونم از کلاسها دل بکنم!
مثلاً همین قضیه کاربرها رو میشه با یک کلاس factory راحت حل کرد.

ahmadirad1365
06-09-2008, 11:40
سلام
ممنون
ولی انگار متوجه نشدید من دارم با php کد می نویسم تو اینجا که ابزار Net. وجود نداره.

اساتید بزرگ php کم لطف شدن نمیان نظر بدن.

سلام
من زیاد با php کار نکردم اما شما هم مثل هر اپلیکیشن متعارف دیگه میتونی در دیتابیس یک جدول مخصوص رخدادهای هر کاربر درست کنید و توش اطلاعاتی رو که بشه با اونا کاربر را مدیریت کرد ذخیره کنی بعد با استفاده از چند کد سراری که لزومی هم نداره کد php باشه (با خود دستورات sql شرطی) کاربر رو هدایت و برای اعمال رفتارش کد مربوطه رو بنویسی
دقیقا این کا رو بیشتر cms هایی که با php نوشته شده اند انجام داده اند به طور مثال به دیتابیس همین vBulletin توجه کنید.
در ضمن در هر زبان برنامه نویسی ای در صورتی که برای سشن های تعریف شده "رل" (به اصطلاح خودم!) درست حسابی ای ایجاد نکنید به 5 روش کلی میشود از این سشنها استفاده نمود.
برای اطلاعات بیشتر میتوانید به مقاله ای که در مجله وب منتشر شده است رجوع کنید

hadi_joulaee
06-09-2008, 17:55
من کاملا با نظر neopersia موافقم .
فقط id رو داخل یه سشن نگه داریم و بعدش permission هر کاربر رو از جدول مشخصات کاربران واکشی کنیم و محدودیت هارو طبق permission هر کاربر اعمال کنیم.

David.Jn
06-09-2008, 18:20
من کاملا با نظر neopersia موافقم .

منم با شیء گرایی که neopersia گفتن موافقم ولی از این حرفهای دوستون چیزی نفهمیدم آخه چه جوری میشه با sql کاربرارو شناسایی کرد.

ولی این دوستمون یه چیزی در مورد ترافیک سایت درهنگام استفاده از سشن گفتن چه جوری میشه از این ترافیک جلوگیری کرد؟

hadi_joulaee
08-09-2008, 13:40
من منظورم این بود که هر کاربری که میخواد لوگین کنه ابتدا واسه id اون یه سشن در نظر بگیری و بعد از اینکه کاربر تشخیص هویت شد(با اطلاعاتی که تو دیتابیس ازش داریم). حالا نوبت به این میرسه که ببینیم که چه اجازه دسترسی داره!!!
کاربر عادیه یا مدیره!
حالا که فهمیدیم permission ش چیه اون موقع میتونیم محدودیت هایی که کاربر عادی نسبت به مدیر داره رو ایجاد کنیم.

David.Jn
08-09-2008, 16:43
من منظورم این بود که هر کاربری که میخواد لوگین کنه ابتدا واسه id اون یه سشن در نظر بگیری و بعد از اینکه کاربر تشخیص هویت شد(با اطلاعاتی که تو دیتابیس ازش داریم). حالا نوبت به این میرسه که ببینیم که چه اجازه دسترسی داره!!!
کاربر عادیه یا مدیره!
حالا که فهمیدیم permission ش چیه اون موقع میتونیم محدودیت هایی که کاربر عادی نسبت به مدیر داره رو ایجاد کنیم.

ممنون
ولی اینارو میدونم
اون حرف دوستمون که گقتن با دستورات sql تمام این کار ها را میشه انجام داد را متوجه نشدم .
یعنی اصلآ سشن بکار نبری و وبا اون دستورات تشخیص بدی؟؟؟!!!
آخه چه جوری میشه با Sql کاربرا رو تو صفحات دیگه شناسایی کرد.

ahmadirad1365
12-09-2008, 02:13
ممنون
ولی اینارو میدونم
اون حرف دوستمون که گقتن با دستورات sql تمام این کار ها را میشه انجام داد را متوجه نشدم .
یعنی اصلآ سشن بکار نبری و وبا اون دستورات تشخیص بدی؟؟؟!!!
آخه چه جوری میشه با Sql کاربرا رو تو صفحات دیگه شناسایی کرد.

سلام:10:
نگاه کنید شما سایت گوگل رو در نظر بگیرید ، در این سایت در هر لحظه میلیونها نفر به پنل خود لوگین و دست به تغییرات میزنند، خوب اگر ما بخواهیم برای هر کاربر یک سشن ایجاد کنیم یقینا هر چقدر که سرورمون گردن کلفت باشه باز هم کم میاره برای همین است که در برنامه های استاندارد شده دات نت برای اینکه بتونن از مشکلات این بار اضافی جلوگیری کنند اولن به کل با استفاده از فایل کانفیگ استفاده از سشن رو غیر فعال میکنند و تنها در جاهایی که لازم است در همان صفحه استفاده از اونو مجاز میکنند و دوما (اصلی ترین کار) از دستورات treading استفاده مینمایند تا این بار محاسباتی رو بین تمام منابع سیستم تقسم کنند (به ایمیل گوگل وقتی وصل میشدید بعد از فشار دادن دکمه مربوطه به آدرس بار نگاهی بندازید، حتما با نوشته هایی مثل tread و redirect بر میخورید) و این جوری سرعت پاسخگویی بالا میرود.
حالا چه جوری بدون استفاده از سشنها بفهمیم که کدوم کاربر در صفحه است، برای این کار چندین راه وجود داره که در زیر عمومی ترینهاشو براتون یه توضیح مختصری میدم و راه های استاندارد شده و حرفه ایشم که یقینا اینجا جای بحثش نیست:
1- وقتی کاربر لوگین کرد در صورت معتبر بودن فقط آدی کاربر (هر چیزی میتونه باشه فقط باید در دیتابیس به صورت یک کلید (از هر نوعش بستگی به منطق دیتابیس شما داره) شناخته شده باشه) رو توی یک متغییر میریزیم بعد برای هر دکمه ای که قراره ما کاربر رو به صفحه ای ارجاء بده با استفاده از Query String اون متغیرمون رو به صفحه مربوطه بفرستیم و در صفحه مربطه هم باید بر اساس اون متغیر اومده دستورات لازم رو اعمال کنیم.
2-در دیتابیس برای هر کاربر جدولی درست کنیم تا بشه توش مقادیری مانند وضعیت کاربری هر کاربر رو ثبت کرد بعد توی همون دیتابیس (sql 2005) بر طبق منطق لازم دست به ایجاد Stored Procedure (روالهای ذخیر شده معنی فارسیشه) بزنیم به طوری که اگر اون رویه ایجاد شد به ما نتیجه مورد نظرمون رو بده ، بعد تنها کافی است که از این Stored Procedure های ایجاد شده تنها با فراخوانی آنها کاربرمون رو در هر صفحه مدیریت کنیم.
همان طور که فهمیدید برای استفاده از این راه باید دارای منطق برنامه نویسی قوی داشته باشید و هر حرکت کاربر رو پیش بینی کنید.
3- اگر ما بیایم راه های اول و دوم رو با هم به صورت ترکیبی استفاده و تنکش هم یه خورده از کوکی ها استفاده کنیم دقیقا میشه همون چیزی که اکثر برنامه های تحت وب ازش استفاده میکنند از جمله همین vBulletin
(تست کنید وارد پنل خود در انجمن شده و بعد از ورود اتصال خود را به اینترنت قطع کرده و دوباره اتصال بیابید میبینید که هنوز انجمن شما رو به عنوان یک کاربر معتبر میشناشه!)
در کل ما در بالا در حقیقت به مدیریت نقشها به صورت ضمنی پرداخته ایم، اگر چه این کارها شاید طاقت فرسا و سخت جلوه کند اما نتیجه آن بسار دلنشین خواهد بود. در ضمن اصول گفته شده در همه زبانهای برنامه نویسی از دات نت گرفته تا پی اچ پی ، پریل و زبانهای نه چندان شناخته شده دیگه قابل اجراست و تنها فرقشون در تعداد خط کدی که باید فکر کنید و بنویسیده .
البته بگما در C#.net 2 این کارا تا حد بسیار زیادی از قبل برای استفاده راحت تر شما نوشه شده است که این خود یکی از برتریهای دات نت در قبال زبوهای بی قاعده ای مثل پی اچ پی است که فهماندن یک شی بهش N دقیقه وقت لازمه
امید وارم فهمیده باشد، هر چند که مطالب ذکر شده خیلی تازه نیستند:20:

neopersia
12-09-2008, 02:47
سلام:10:
نگاه کنید شما سایت گوگل رو در نظر بگیرید ، در این سایت در هر لحظه میلیونها نفر به پنل خود لوگین و دست به تغییرات میزنند، خوب اگر ما بخواهیم برای هر کاربر یک سشن ایجاد کنیم یقینا هر چقدر که سرورمون گردن کلفت باشه باز هم کم میاره برای همین است که در برنامه های استاندارد شده دات نت برای اینکه بتونن از مشکلات این بار اضافی جلوگیری کنند اولن به کل با استفاده از فایل کانفیگ استفاده از سشن رو غیر فعال میکنند و تنها در جاهایی که لازم است در همان صفحه استفاده از اونو مجاز میکنند و دوما (اصلی ترین کار) از دستورات treading استفاده مینمایند تا این بار محاسباتی رو بین تمام منابع سیستم تقسم کنند (به ایمیل گوگل وقتی وصل میشدید بعد از فشار دادن دکمه مربوطه به آدرس بار نگاهی بندازید، حتما با نوشته هایی مثل tread و redirect بر میخورید) و این جوری سرعت پاسخگویی بالا میرود.
حالا چه جوری بدون استفاده از سشنها بفهمیم که کدوم کاربر در صفحه است، برای این کار چندین راه وجود داره که در زیر عمومی ترینهاشو براتون یه توضیح مختصری میدم و راه های استاندارد شده و حرفه ایشم که یقینا اینجا جای بحثش نیست:
1- وقتی کاربر لوگین کرد در صورت معتبر بودن فقط آدی کاربر (هر چیزی میتونه باشه فقط باید در دیتابیس به صورت یک کلید (از هر نوعش بستگی به منطق دیتابیس شما داره) شناخته شده باشه) رو توی یک متغییر میریزیم بعد برای هر دکمه ای که قراره ما کاربر رو به صفحه ای ارجاء بده با استفاده از Query String اون متغیرمون رو به صفحه مربوطه بفرستیم و در صفحه مربطه هم باید بر اساس اون متغیر اومده دستورات لازم رو اعمال کنیم.
2-در دیتابیس برای هر کاربر جدولی درست کنیم تا بشه توش مقادیری مانند وضعیت کاربری هر کاربر رو ثبت کرد بعد توی همون دیتابیس (sql 2005) بر طبق منطق لازم دست به ایجاد Stored Procedure (روالهای ذخیر شده معنی فارسیشه) بزنیم به طوری که اگر اون رویه ایجاد شد به ما نتیجه مورد نظرمون رو بده ، بعد تنها کافی است که از این Stored Procedure های ایجاد شده تنها با فراخوانی آنها کاربرمون رو در هر صفحه مدیریت کنیم.
همان طور که فهمیدید برای استفاده از این راه باید دارای منطق برنامه نویسی قوی داشته باشید و هر حرکت کاربر رو پیش بینی کنید.
3- اگر ما بیایم راه های اول و دوم رو با هم به صورت ترکیبی استفاده و تنکش هم یه خورده از کوکی ها استفاده کنیم دقیقا میشه همون چیزی که اکثر برنامه های تحت وب ازش استفاده میکنند از جمله همین vBulletin
(تست کنید وارد پنل خود در انجمن شده و بعد از ورود اتصال خود را به اینترنت قطع کرده و دوباره اتصال بیابید میبینید که هنوز انجمن شما رو به عنوان یک کاربر معتبر میشناشه!)
در کل ما در بالا در حقیقت به مدیریت نقشها به صورت ضمنی پرداخته ایم، اگر چه این کارها شاید طاقت فرسا و سخت جلوه کند اما نتیجه آن بسار دلنشین خواهد بود. در ضمن اصول گفته شده در همه زبانهای برنامه نویسی از دات نت گرفته تا پی اچ پی ، پریل و زبانهای نه چندان شناخته شده دیگه قابل اجراست و تنها فرقشون در تعداد خط کدی که باید فکر کنید و بنویسیده .
البته بگما در C#.net 2 این کارا تا حد بسیار زیادی از قبل برای استفاده راحت تر شما نوشه شده است که این خود یکی از برتریهای دات نت در قبال زبوهای بی قاعده ای مثل پی اچ پی است که فهماندن یک شی بهش N دقیقه وقت لازمه
امید وارم فهمیده باشد، هر چند که مطالب ذکر شده خیلی تازه نیستند:20:
من هیچکدوم از اینایی رو که گفتی قبول ندارم! به نظر من این روشی هایی که گفتی چند صد برابر استفاده از سشن به سرور فشار میاره!
آخه یک فایل چند بایتی سشن رو کجا میشه با گرفتن کوئری از دیتابیس مقایسه کرد؟!
برای هیچکدوش دلیل قانع کننده ای نیاوردی شاید اگه با دلیل و مقایسه آمار و ارقام بنویسی منم قانع بشم!
در ضمن استفاده از مشخصه کاربری در کوئری استرینگ هم مشکل امنیتی داره. اگر هم قرار باشه که انکود بشه خوب بازم بیشتر از سشن وقت سرور رو استفاده میکنه!

hadi_joulaee
12-09-2008, 16:57
حرف neopersia کاملا درسته.
منم با اون چیزایی که دوستمون تو پست بالا گفت مخالفم.

ahmadirad1365
13-09-2008, 10:50
من هیچکدوم از اینایی رو که گفتی قبول ندارم! به نظر من این روشی هایی که گفتی چند صد برابر استفاده از سشن به سرور فشار میاره!
آخه یک فایل چند بایتی سشن رو کجا میشه با گرفتن کوئری از دیتابیس مقایسه کرد؟!
برای هیچکدوش دلیل قانع کننده ای نیاوردی شاید اگه با دلیل و مقایسه آمار و ارقام بنویسی منم قانع بشم!
در ضمن استفاده از مشخصه کاربری در کوئری استرینگ هم مشکل امنیتی داره. اگر هم قرار باشه که انکود بشه خوب بازم بیشتر از سشن وقت سرور رو استفاده میکنه!

:41:
سلام
دوست من اولا کی گفته که سشن ها خیلی امن هستند . "در ماهیت امنیتیش شکی نیست" اما کلا اینجوری که در این تایپینک داره درباره استفاده کردنش گفته میشه باور کنید هک کردن اون سایت خیلی راحت میشه حال میخاهید باور کنید یا نکنید.
دوما من این اطلاعاتو بر اساس تجربیات گفته ام و اگر هم دقت کرده باشید گفتم که راهای دیگه ای هم است که اینجا جای بحثش نمیباشد و مطمئن باشید که راهای موجود بسیار بهتر از استفاده مفرط از سشن است.
سوما بله کوئری گرفتن از دیتابیس یقینا وقت محاسباتی زیادی و میگیره. اما دوست من دیتابیس داریم تا دیتابیس. شما خود میتوانید امتحان کنید و سرعت را در یک دیتابیس با منطق درست که تا مرحله 4nf به انتزائی خالص داده ای رسیده رو بسنجید (همین نورسویس).
به غیر از آن کی گفته سشنها در حد چند بایت از حافظه رو اشغال میکنند (این ارتباط مستقیم به دادتون داره)
برای نشان دادن آمار و ارقام هم من چیزی ندارم اما میتونید به سایت msdn ماکروسافت و سایتهای معتبر مرتبط رفته و به کسب اطلاع بپردازید. چون به هر حال ما داریم درباره خار و خاشاک روی آب بحث میکنیم و یقینا برای به دست آوردن دانش ناب باید زحمت کشید.
اما در کل برای کار این دوستمون همون راهای گفته شده توسط دیگران براشون یقینا ارضاء کننده است.
در ضمن اون سایتی که اطلاعات کاربری کاربرانشو در دیتابیس کد شده ذخیره نکند یقینا از پی مشکل امنیتی خواهد داشت (گر خشت اول را معمار نهد کج تا سریا دیوار رود کج):13:

David.Jn
13-09-2008, 15:45
دوست من اولا کی گفته که سشن ها خیلی امن هستند . "در ماهیت امنیتیش شکی نیست" اما کلا اینجوری که در این تایپینک داره درباره استفاده کردنش گفته میشه باور کنید هک کردن اون سایت خیلی راحت میشه حال میخاهید باور کنید یا نکنید.

میشه بگیدچه جوری هک میشه؟!
چون سوال من همینه که با این روشی که من از سشن استفاده کردم چی جوری سایت میتونه هک بشه؟!

ولی فکر می کنم روشهایی که دوستان گفتن از لحاظ امنیتی مشکل نداشته باشن.
تا ببینیم بقیه چی میگن.

neopersia
13-09-2008, 18:20
من میگم اگر در سروری سشنها امنیت نداشته باشن سورس اون سایت هم در امان نیست!
در مورد سایزشون هم میدونم بستگی داره به حجم اطلاعاتی که توش ذخیره میشه ولی اگر اطلاعات غیر متعارف توش نباشه خیلی کم پیش میاد که به نیم کیلو بایت برسه!

ahmadirad1365
15-09-2008, 02:11
میشه بگیدچه جوری هک میشه؟!
چون سوال من همینه که با این روشی که من از سشن استفاده کردم چی جوری سایت میتونه هک بشه؟!

ولی فکر می کنم روشهایی که دوستان گفتن از لحاظ امنیتی مشکل نداشته باشن.
تا ببینیم بقیه چی میگن.

:10:
از لحاظ امینیتی بدونید این خانه از پی ویران است(روش استفاده)
درباره طرق هک کردن سشنها(خود سشن نه بلکه دور زدن آن!؟ )اینجا جای بحثش نیست اما به زبان ساده سعی میکنم یکی از ایرادات تابلوی روش استفاده شده شما رو بگم:
شما 3 تا صفحه دارید یکی برای لوگین ، یکی برای مدیریت و یکی هم برای کاربران و این سه صفحه هم دارای آدرس فیزیکی هستند (یعنی مثلا برای مدیریت توی هاست شما یک صفحه به اسم admin_panel.php ایجاد کرده اید).
خوب شما در صفحه لوگین میاین مشخصات کاربری رو وارد میکنید بعد اگر اطلاعات درست بود فقط میاید آی دی طرفو توی یه سشن میرزی و نسبت به نقشی که کاربر داره به صفحه مدیریت یا کاربری ارجاش میدی.
خوب حالا طرف اومد فهمید آدرس صفحه مدیریت x و آدرس صفحه کاربری y است، شما چه جوری میخوای منعش کنی کاربر نیاد صفحه مدیریتو ببینه؟
شما فقط اومدی آدیشو ریختی توی یه سشن و بعدش گفتی فی امان الله!؟
برای جلوگیری ازاین کار چاره ای نداری جز اینکه توی هر صفحه بیای به دیتابیست وصل بشی بعد با استفاده از دستور لکت بیای درجه کاربرو بگیری و بفهمی که با با این مدیره یا نه؟
ویا اینکه توی همون صفحه لوگین درجه کاربری رو هم توی یه سشن دیگه بریزی و توی هر صفحه بیای بگی اگه اطلاعات این سشن مساوی مثلا مدیر بود صفحه مدیرتو نشونش بده در غیر این صورت مثلا از سایت بندازش بیرون.
خوب. اگه بگی راهای بالا خوبن نسبت به درجه کارت شاید خوب باشن اما بدون مثل این میمونه که بوینگ در اختیار داشته باشی اما پیاده از این شهر به اون شهر بری.
پس نتیجه میگیریم استفاده ساده از سشنها شاید کا رو پیش ببرد اما واقعا باور کنید هیچ حرفی برای دفاع کرن باقی نیذاره و راحی جز استفاده از روشهایی که در پست قبلی مطرح شد برای یک کار اصولی و تمیز وجود نداره
:8:درباره این پست به اندازه کافی برای آنکه بفهمد اطلاعات داده شد(دیگه جواب نمیدم)

pezhman32
15-09-2008, 19:55
خوب اینکه فکر می کنم مشخص باشه که در سشن ها هرچی دم دستت اومد نباید بریزی, نه بخاطر نبود امنیت بلکه بخاطر اینکه انعطاف برنامه رو پایین میاره, مثلا" در یک فروم از یک کاربر در هر صفحه کلی اطلاعات باید از دیتابیسش گرفته بشه (در هر صفحه حداقل یکبار باید به دیتابیس کاربر متصل بشی), حالا اینکه بخوای برای عدم اتصال به دیتابیس تمام اطلاعاتت رو تو سشن بریزی کار عاقلانه ای نیست (من اینجوری فکر می کنم)

David.Jn
16-09-2008, 16:55
خوب اینکه فکر می کنم مشخص باشه که در سشن ها هرچی دم دستت اومد نباید بریزی, نه بخاطر نبود امنیت بلکه بخاطر اینکه انعطاف برنامه رو پایین میاره, مثلا" در یک فروم از یک کاربر در هر صفحه کلی اطلاعات باید از دیتابیسش گرفته بشه (در هر صفحه حداقل یکبار باید به دیتابیس کاربر متصل بشی), حالا اینکه بخوای برای عدم اتصال به دیتابیس تمام اطلاعاتت رو تو سشن بریزی کار عاقلانه ای نیست (من اینجوری فکر می کنم)

بله كاملآ درسته منم نميخوام همه اطلاعات را داخلش بريزم.حالا نميدونم چرا شما اينجوري متوجه شديد