PDA

نسخه کامل مشاهده نسخه کامل : تفاوت سشن و کوکی



m.m.m5651
01-08-2011, 00:43
سلام.
من این لینک رو خوندم دستش درد نکنه neopersia ولی میخواستم بدونم امنیت سشن بهتره یا کوکی؟ ممنون.

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

eAmin
01-08-2011, 20:05
شما مطمئن هستید که اون تاپیک رو کامل مطالعه کردید؟


کوکی ها تا زمانی که باطل نشده باشن زنده میمونن که طول عمرشون رو هم همون موقع که ست میشن میشه تعیین کرد. برای ذخیره تنظیماتی که حیاتی نیستن و باید طی مدت طولانی (بیشتر از یک جلسه) تو مرورگر باقی بمونن میشه از کوکی استفاده کرد




بله و خیر! خیلی جاها میتونن ولی خیلی جاها نباید جانشین هم بشن! اینا ابزارهایی هستن که دست برنامه نویسه که تصمیم بگیره از هر کدوم چه استفاده ای بکنه. در کل ذخیره اطلاعات خصوصی در کوکی ها مشکل امنیتی داره. از طرفی با توجه به اینکه سشنها در هر بازدید ریست میشن و در بازدید بعدی باید از اول پر بشن و احیانا تنظیمات رو دوباره از دیتابیس بخونن اما طول عمر کوکی ها رو میشه بدون کوچکترین تأثیری روی سرور به مقدار دلخواه تنظیم کرد باعث میشه که کوکی ها محل خوبی برای ذخیره یک تنظیمات معمولی و درازمدت کاربر باشن

m.m.m5651
01-08-2011, 20:15
سلام. من اگر بخوام از کوکی ها استفاده کنم در سیستمم، اونوقت کاربر ها میتونن همین طوری از خودشون یه کوکی با اسم مثلا administrator درست کنن و به بخش های مدیریت سایت برن؟
ممنون میشم کمک کنین.

eAmin
01-08-2011, 20:16
بستگی به این داره که شما چطور و برای چه کاری از کوکیها استفاده کنید.
اگر بخواید سیستم کاربری کامل مبتنی بر کوکی بنویسید، در کل میشه گفت بله... شما هر چه قدر هم که اطلاعات رو در کوکی بپیچونید و مثلن بخواید کار هکر رو سخت کنید، باز هم نمی تونید جلوی نفوذ هکرها رو بگیرید.

ولی همونطور که در تاپیک دیگه شما هم اشاره شد نباید اطلاعات حساس رو در کوکی ذخیره کرد. اطلاعات مهم رو می تونید در session ذخیره کنید.
البته راههایی هم برای دزدی/سوء استفاده از Session ها هم هست که چند سال پیش در راین رابطه یک بحث ایجاد شد در همین انجمن که می تونید جستجو کنید.

m.m.m5651
01-08-2011, 21:07
ممنون.
مثلا برای دکمه ی "مرا به خاطر بسپار" یا صفحه ای که لاگین می کنن کاربر ها درسته از کوکی استفاده کنم؟
برای خودم (Admin) چی؟
یا مثلا هر صفحه ای که از کاربر بخواد لاگین کنه و چک کنه که $_cookie['username'] ست شده یا نه، اونوقت دوباره یه دور چک کنه که نام کاربری و رمز معتبر هست یا نه امن میشه؟

---------- Post added at 07:37 PM ---------- Previous post was at 07:36 PM ----------

تو عجب دنیایی زندگی می کنیم باید خدا خدا کنیم که هکر ها با انصاف باشن :دی

rasool.kh
02-08-2011, 01:42
ممنون.
مثلا برای دکمه ی "مرا به خاطر بسپار" یا صفحه ای که لاگین می کنن کاربر ها درسته از کوکی استفاده کنم؟
برای خودم (Admin) چی؟
یا مثلا هر صفحه ای که از کاربر بخواد لاگین کنه و چک کنه که $_cookie['username'] ست شده یا نه، اونوقت دوباره یه دور چک کنه که نام کاربری و رمز معتبر هست یا نه امن میشه؟

---------- Post added at 07:37 PM ---------- Previous post was at 07:36 PM ----------

تو عجب دنیایی زندگی می کنیم باید خدا خدا کنیم که هکر ها با انصاف باشن :دی
به نطر من باید برای admin از Sessions و برای کاربران سایت از کوکی با پسورد هش شده استفاده کنید.

m.m.m5651
02-08-2011, 02:19
ممنون.
هش شده یعنی چی؟
یعنی در هر صفحه ببینه درسته یوزر نیم و پسورد؟ طول نمی کشه لود صفحه این طوری؟

m.m.m5651
02-08-2011, 15:14
من داشتم یه مطلب رو در مورد کوکی ها میخوندم به این برخوردم:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
این مدلیش رو دیگه نشنیده بودم.
این چیکار می کنه؟
لینک مطلب:

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

rasool.kh
02-08-2011, 21:00
ممنون.
هش شده یعنی چی؟
یعنی در هر صفحه ببینه درسته یوزر نیم و پسورد؟ طول نمی کشه لود صفحه این طوری؟

یعنی پسوردت رو با توابعی مثل crypt و احیانا یه دونه salt کد کنی. و اون رو توی یک کوکی قرار بدی. اگه غیر از این باشه که یوزر و پسوردت چک بشه خوب هر گاگولی میتونه با یک ست کوکی تقلبی به هدفش برسه.

m.m.m5651
02-08-2011, 21:41
من که چیزی سر در نیوردم.
میشه یه مثال کدی بزنین؟

---------- Post added at 08:11 PM ---------- Previous post was at 08:08 PM ----------

ببینید این خوبه؟

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

m.m.m5651
03-08-2011, 18:06
کسی نیست جواب بده؟
ممنون میشم راهنمایی کنید.

rasool.kh
04-08-2011, 22:07
ببینید این خوبه؟

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

نه عزیزم ببین مثل این، ببین میفهمی چی میشه؟! برو در مورد توابع md5 و crypt سرچ کن توی نت.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
و اگه نخوای پسورد رو بذاری توی کوکی، میتونی بعد از چک کردن user و پسورد یک راندوم بزرگ تولید کنی و اون رو هم توی کوکی و هم توی دیتابیس برای اهراز هویت کاربران سایت نگهداری کنی. پیروز باشی.

m.m.m5651
04-08-2011, 23:47
ممنون. دستتون درد نکنه.
من این لینک رو درباره ی Crypt() خوندم ولی هیچی نفهمیدم :دی
اگه میشه یکم راهنمایی کنین دربارش.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
ببخشید من خیلی مبتدی هستم وقتتون رو می گیرم.

rasool.kh
05-08-2011, 01:14
ممنون. دستتون درد نکنه.
من این لینک رو درباره ی Crypt() خوندم ولی هیچی نفهمیدم :دی
اگه میشه یکم راهنمایی کنین دربارش.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدببخشید من خیلی مبتدی هستم وقتتون رو می گیرم.

شما یک پسورد داری و میخوای کدش کنی. میتونی از توابه مختلفی استفاده کنی که هر کدوم امنیت خاص خودشون رو دارن. مثلا crypt. وقتی یک رشته مثلا همون پسورد رو به صورت تنها بخورد این تابع بدی به این صورت crypt($password) این تابع پس از هر بار اجرا یک کد متفاوت تولید میکنه. یعنی مثلا دو بار اجرا میشه و دوتا کد متفاوت تولید میکنه. و این مشکل سازه چون شما میخوای این پسورد کد شده رو با یک کد دیگه که توی دیتابیس هست مقایسه بکنی. برای حل این مشکل شما دوست عزیز باید یک نمک یا همون salt اضافه کنی تا هم امنیت رو افزایش بدی و هم کدای تولیدیه یکسانی بدست بیاری. نمک هر چیزی میتونه باشه. به مثال زی توجه کن

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
الان من پسورد پست شده از فرم قبلی رو با نمک beautiful قاطی کردم. شما همواره کد یکسانی با این تابع بدست خواهی آورد. وقتی یک نفر میخواد توی سایت ثبت نام کنه شما کد بدست اومده رو توی دیتابیس ذخیره میکنی نه خود اصل پسورد رو. بعد وقتی طرف میاد لاگین بشه باز پسوردش رو کد میکنی و با پسوردی که توی دیتابیس هست مقایسه میکنی و اگه یکی بود اجازه ورود دارد.

neopersia
05-08-2011, 04:03
این نکته رو هم من اضافه کنم که بهتره سالت رندوم باشه. طولش هم متغیر باشه. و در هر دفعه استفاده هم عوض بشه
در غیر این صورت هکر رو کند میکنه اما نه به اندازه ای که نتونه کارش رو انجام بده

m.m.m5651
05-08-2011, 15:29
ممنونم از شما دوستان.
اونوقت هر دفعه عوض بشه یعنی اینکه به دیتابیس وصل بشه و هر دفعه اون رمز رو عوض کنه؟
اونوقت هر صفحه ای که بخواد از کوکی استفاده کنه که اگر رندوم باشه دیگه با دفعه ی قبلی جور نمیشه.
میشه راهنماییم کنید؟ یکم گیج شدم.

دیگه یوزر نیم رو که نمیخواد Crypt کنم نه؟

اونوقت اگر برای خودم که مدیر سایتم هستم :دی بخوام سشن درست کنم دیگه نمیخواد کاریش کنم؟ فقط یه سشن ساده کافیه امنیتش؟

منظورم برای استفاده در کنترل پنل مدیریت هست.

neopersia
09-08-2011, 02:13
اونوقت هر دفعه عوض بشه یعنی اینکه به دیتابیس وصل بشه و هر دفعه اون رمز رو عوض کنه؟
اونوقت هر صفحه ای که بخواد از کوکی استفاده کنه که اگر رندوم باشه دیگه با دفعه ی قبلی جور نمیشه.

باید سالتی رو که موقع هش کردن استفاده میشه به همراه پسورد ذخیره کنید و بعداً برای چک کردن داده های ورودی کاربر از همون سالت قبلی استفاده کنید


دیگه یوزر نیم رو که نمیخواد Crypt کنم نه؟
لزوماً احتیاجی نیست


اونوقت اگر برای خودم که مدیر سایتم هستم بخوام سشن درست کنم دیگه نمیخواد کاریش کنم؟ فقط یه سشن ساده کافیه امنیتش؟
چه فرقی میکنه؟ پسوردها همیشه باید هش بشه. کوکی هم هر وقت پسورد داخلش هست باید هش شده باشه

m.m.m5651
09-08-2011, 15:36
ممنون. اونوقت وقتی Crypt کنم اصلا بازم نیاز هست که کوکی admin رو به سشن تبدیل کنم امنیتش بره بالا تر؟
من در مورد md5 هم تحقیق کردم. خودش پسورد رو به رندوم هش می کنه. اونوقت امنیت کدوم بهتره فرق می کنه اصلا؟
آهان فهمیدم خودم این یکی MD5 هر دفعه تغییر نمی کنه.
ممنون.

m.m.m5651
12-08-2011, 18:40
من یه مشکل دارم با Crypt کردن. دیگه نمیخواد پسورد های هش نشده رو در دیتابیس سیو کنم نه؟ فقط پسورد ها رو به صورت هش شده سیو کنم کافیه؟ مشکلم اینجاست که اونوقت در داخل قسمت salt ِ فانکشن Crypt چی بذارم؟ یه عدد رندوم؟ اونوقت که هر دفعه پسورد یه چیز در میاد و با پسورد داخل دیتابیس تتابق نداره!
من حسابی گیج شدم. میشه کمک کنید؟

neopersia
12-08-2011, 18:54
نه نیازی به ذخیره پسورد بدون هش نیست

اگر پسورد هش شده هر دفعه تغییر میکرد که دیگه قابل استفاده نبود! نتیجه تابع Crypt هم ثابت هست و تغییر نمیکنه. اینکه الان برای شما تغییر میکنه دلیلش این هست که سالت بهش نمیدید و اونم خودش از یه سالت رندوم استفاده میکنه برای همین نتیجه هر دفعه فرق میکنه
از طرفی کمتر پیش میاد که برای هش کردن از تابع crypt استفاده بشه. معمولاً از توابع md5 و sha1 استفاده میشه. در برخی مواقع هم که لازم باشه هش با الگوریتمهای دیگه انجام بشه از تابع hash استفاده میشه

m.m.m5651
12-08-2011, 20:08
ممنون. تابع sha224 و اینا رو چه شکلی میشه استفاده کرد؟ چون به صورت فانکشن وجود ندارن. :(

neopersia
13-08-2011, 01:24
ممنون. تابع sha224 و اینا رو چه شکلی میشه استفاده کرد؟ چون به صورت فانکشن وجود ندارن. :(
همونطور که گفتم با استفاده از تابع hash

m.m.m5651
13-08-2011, 02:30
ممنون. فکر کنم از دست من اون پروفایل پیکچر رو گذاشتین نه؟ :دی امنیت کدوم بالا تره؟ ممنون.