PDA

View Full Version : به نظرتون اين تكنيك براي نوشتن سبدخريد امنيت كافي را دارد؟



vb_nima
جمعه 27 مرداد 1391, 00:42 صبح
باسلام.
دوستان اين سناريويي كه من ميگم آيا به نظرتون امنيت كافي دارد؟
يك سايت فروشگاه باشه.
براي سبد خريد بياييم زماني كه كاربر يك كالا را انتخاب كرد ما id,name,price را در session وارد ميكنيم. و اين كار را براي تمام محصولات موردنظرش انجام ميديم.
بعد وقتي كاربر به صفحه سبدخريد رفت session را ميخونيم و مثلا تو گريدويو محصولات مورد نظرش را ميگذاريم و بعد برهمون اساس قيمتها مشتري خريد را انچام ميده.
حال بخشي كه ميگم امنيت داره يا نه اينه: آيا كاربر ميتونه وقتي يك محصول را انتخاب كرد session را تغيير بده و مقدار قيمت را كمتر كنه تا وقتي به صفحه سبد خريد رفت همون مقدار كم نشون داده بشه و بعد خريد را براساس اون مقدار كم انجام بدهد؟
البته شايد روشهاي ديگه اي براي پياده سازي سبد خريد باشه ولي درحال حاشر فقط بررسي امنيت اين روش برام مهمه؟ممنون ميشم اگر اشراف كامل به مباحث session و ... داريم توضيح بديد همچين چيزي ممكنه يا نه؟
موفق باشيد.

dorparasti
جمعه 27 مرداد 1391, 01:29 صبح
خوب من نمی تونم بگم اشراف دارم روی این بحث . اما تا جایی که خودم درباره سشن بررسی داشتم متداولترین مشکل امنیتی درباره سشن ها ، دزدیده شدن session یا sessionHijacking هستش . یعنی هکر با دزدیدن سشن یک کاربر خودش رو به جای اون جا میزنه . حالا این کاربر می تونه مدیر سایت باشه یا در مورد یک سایت خرید و فروش یک مشتری که مثلا کوپن تخفیف داره یا اگر اطلاعات کارت اعتباری کاربران ذخیره بشه هکر می تونه با کارت اعتباری یک کاربر دیگه خرید کنه .

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

vb_nima
جمعه 27 مرداد 1391, 03:12 صبح
بله صحبتهاي شما درسته.
شايدم اون سوال من ناشي از درك اشتباه عملكرد sessionها و بخصوص نحوه عملكرد برنامه هاي تحت وب باشه.
ببينم يعني session به همراه صفحه Html از سرور به كلاينت فرستاده نميشه؟

dorparasti
جمعه 27 مرداد 1391, 03:41 صبح
نه ، تنها ارتباط دهنده سشنی که روی سرور هست و یک کلاینت یک sessionId است که یا توی یک کوکی روی ماشین کلاینت ذخیره میشه و با هر رکوئست به سرور ارسال میشه و یا توی url اضافه میشه و باز با هر رکوئست به سرور ارسال میشه .
سرور از این Id برای تشخیص اینکه هر سشن مربوط به کدوم کلاینت ( درخواست ) هستش استفاده می کنه و هکر هم از همین راه وارد میشه یعنی از طرق مختلف اون کوکی که Id یک کاربر توش هست رو می دزده و با ارسال اون به سرور خودش رو به جای کاربر جا میزنه .

vb_nima
جمعه 27 مرداد 1391, 12:16 عصر
بسيار عالي.
ممنون از پاسختون.

m_kalantar.cs
شنبه 28 مرداد 1391, 11:53 صبح
درود
اگه می خواهید از session در سایت تان برای این کار استفاده کنید و امنیت خیلی برایتان مهم است ، session fixation را فراموش نکنید.