PDA

View Full Version : حرفه ای: ساخت کد یکتا برای کاربران



profnami
سه شنبه 21 خرداد 1392, 17:04 عصر
با سلام
به منظور اهداف امنیتی، میخواهم اجهزه ندهم که کاربرانم از چندین تب به وب سایتم دسترسی داشته باشند . در نتیجه میخواستم که وقتی کاربر از یک پنجره و یک تب وارد سایت میشود، یک کد یکتا برای او ساخته و اگر از تب دیگری وارد شد، یک کد دیگرا برای او تولید کرده و او را دوباره مجبور به لاگین کردن نمایم .

لطفا اگر پیشنهاد بهتری دارید ارائه بفرمایید در غیر اینصورت در این زمینه راهنمایی بفرمایید.
ممنون

plague
چهارشنبه 22 خرداد 1392, 03:10 صبح
این چیزی که شما میگید حداقل با php به شکلی که خطا نداشته باشه عملی نیست
این که کد یکتا برای کاربر تولید میشه رو هم من نمیفهمم چه کمکی میتونه بکنه به این موضوع !؟

بهتره اون مشکل امنیتی رو از راه دیگه حل کنی

profnami
چهارشنبه 22 خرداد 1392, 15:59 عصر
خیلی ممنون از راهنماییتون. چطوری؟

shahriyar3
چهارشنبه 22 خرداد 1392, 16:54 عصر
والا منم نفهمیدم قضیه این کد یکتا به چه دردی میخوره ولی اگر منظورت token که موقع لاگین ایجاد میشه که هم میتونی سرچ کنی هم بگی آقای eshpilen استاد این چیزاست بهت مفصل توضیح بده

sedamorde
چهارشنبه 22 خرداد 1392, 16:57 عصر
سلام٬
دوست عزیز اگر درست متوجه شده باشم شما اگر سرور اختصاصی دارید یک Socket جاوا نصب کنید برای اینکه بتونید به مرورگر پبام بفرستید (مثل فیس بوک) بعد هم هر بار که صفحه جدیدی باز شد یک کد به صفحه بدهید و از طریق Socket پیامی به مرورگرها بفرستید تا به وسیله Javascript بشه تمام صفحات یا برخی را از کار انداخت البته کار ساده‌ای نیست و باید ببینید به زحمتش می‌ارزه یا نه!

تنها با کمک javascript هم فکر میکنم شدنی باشه٬ مثلا هر بار که یک صفحه اجرا شد اطلاعات صفحه در SESSION بشه بعد با Ajax مثلا صحت صفحات را چک کرد... البته این خیلی جای فکر داره همانطور که plague (http://barnamenevis.org/member.php?123420-plague) گفت عملی شاید نباشه.

به هر حال موفق باشید ;)

profnami
چهارشنبه 22 خرداد 1392, 19:18 عصر
ببینید شاید من اشتباه سوالم رو مطرح کرده باشم. یک بار کل سناریو رو براتون ساده بازگو میکنم . ( سرور اختصاصی ندارم ) :

ببینید کاربر آدرس صفحه ای رو درخواست میکنه از یک مسیر در سایت مثلا :


http://management.mysite.com/

من هم پس از بارگزاری صفحه به وسیله جاوا اسکریپت چک میکنم که آیا authenticationTicket موجود هست یا خیر؟ اگر موجود باشه که صفحه مورد نظر بارگزاری میشه (پس از اعمال کلیه شرایط مورد نظر برای بارگزاری صفحه)؛ اگر موجود نباشه صفحه لاگین بارگزاری میشه.

حالا من میخوام کاربر محدود به همین tab از browser باشه. با توجه به این که کلیه اعمال به صورت کاملا ajax انجام میشه، نمیخوام کاربر در tab جدید هم بتونه سایت رو مشاهده کنه. برای این مشکل چه راه حلی دارید؟

اضافه کنید به این مشکل مشکل cache مرورگر chrome رو. بعضی اوقات حتی بعد از خاموش کردن کامپیوتر دوباره متصل شدن به سیستم من میتونم به سایت هایی که قبلا وارد شدم دسترسی داشته باشم یعنی احتیاج به لاگین مجدد ندارم! ممنون از راهنماییتون

plague
چهارشنبه 22 خرداد 1392, 22:28 عصر
شما با php , ajax نمیتونید متوجه بشید که آیا کاربری که تبی رو باز کرده آیا در تب دیگه هم باز شده داره صفحه رو یا نه ...اصلا ماله این کار نیستن اینا
شما یه تکنولوژی ریورس نیاز دارید که از سرور بتونید کاربر رو کنترول کنید و زیر نظر بگیرید
یعنی بر خلاف حالت عادی که کلاینت به سرور وصل میشه
این سروره که باید بتونه به کلاینت وصل بشه

ساده ترین چیز node.js و socket.io هست
تکنولوژی های مشابه هم شاید باشن

در کل فکر نمیکنم هیچ کدوم روی هاست اشتراکی قابل پیاده شدن باشن

profnami
پنج شنبه 23 خرداد 1392, 00:09 صبح
مشکل من هم همین جاست. حالا اضافه کن به این قدرت catche کروم رو! حتی session رو هم catche میکنه! یک نفر راه حل دیگه ای ارائه بده لطفا!

arta.nasiri
پنج شنبه 23 خرداد 1392, 01:39 صبح
سلام

آی پی کاربر رو وقتی وارد سایت شد یک جایی ذخیره میکنی، بعد اگه خواست دوباره از یک تب دیگه سایت رو باز کنه چک میکنی اگه اون IP تو لیست IP ها بود ازش درخواست میکنی که دوباره نیاز به لاگین داره.
وقتی هم سایت رو ترک کرد با JavaScript یه درخواست به سرور میفرستی و IP رو از لیست حذف میکنی. ( این روش کاملی نیست و میشه دورش زد، همچنین این روش مستلزم اینه که JavaScript مرورگر فعال باشه )

این روشی که گفتم نظر شخصی بنده بود ولی میتونی با ترکیب روشهایی که اینجا مطرح میشه تقریبا یک مکانیزمی قابل اعتماد طراحی کنی

Unique
پنج شنبه 23 خرداد 1392, 03:00 صبح
این کاری که شما میخواین بکنین عملی نیست ! در ضمن من هیچ دلیلی تاکید میکنم هیچ دلیلی نمیبینم که کاربر برای موضوع امنیتی نتونه سایت را توی چند تا tab باز کنه.