PDA

View Full Version : گفتگو: مشکلات تایمر در آزمون آنلاین



asrah6
یک شنبه 09 شهریور 1393, 15:26 عصر
سلام خدمت دوستان گرامی
من در حال طراحی یک سیتم آزمون آنلاین هستم و زمان را هم از دیتابیس می خوانم و با جاوا اسکریپت به صورت ثانیه شمار کم می کنم و نمایش می دهم تا اینجای کار را مشکلی ندارم اما سوالاتم این است :
1- اگر کاربر شیطنت کرد و جاوا اسکریپت مرورگر را غیر فعال کرد می تواند تا هر زمان که دلش بخواهد در فرم بماند و سپس کلید ثبت را فشار دهد تا جواب هایش در دیتابیس ثبت شود.
2 - اگر کاربر در نزدیک پایان زمان آزمون مرورگر را رفرش کند زمان دوباره از اول شروع می شود.
لطفا راهکار بدهید

aminmousavi
یک شنبه 09 شهریور 1393, 18:40 عصر
سلام دوست عزیز
برای ایجاد امنیت توی سیستمت باید چکینگ ها و عملیات هایی سمت سرور انجام بدی . بنده این روش رو بهتون پیشنهاد میکنم :

- زمانی که به هر کاربر یک سوال اختصاص میدهی ، زمان رو یا توی session یا در Sql ذخیره کن ، اگر کاربر رفرش کنه و شما برای اون سوال به کاربر زمانی اختصاصی داده باشید ، میتوانید میزان زمانی که باید به جاوا برای شمردن را بدید (حالت resume پیدا میکنه) ، و زمانی که دکمه ثبت رو میزنه شما زمان جاری رو با زمانی که سوال رو به کاربر اختصاص داده بودید مقایسه میکنید ، اگر زمان گذشته بیشتر از مورد نظر شما باشد ، میتوانید با کاربر برخورد انجام بدید که قصد تقلب در آزمون رو داشته

asrah6
یک شنبه 09 شهریور 1393, 22:50 عصر
سلام وممنون از راهنمایی شما
راهکار شما را هم پیاده سازی کردم و نمایش اخطار هم درست عمل می کرد . با تشکر از شما
ولی دو سوال
1-DateTime.Now زمان را از سرور می گیرد یا کامپیوتر کلاینت ؟
2-تایمر با غیر از جاوا وجود ندارد؟

ahmad156
یک شنبه 09 شهریور 1393, 22:57 عصر
DateTime.Now زمان سرور رو نشون میده
تایمر سمت سرور هم میشه پیاده سازی کرد ولی مسلماً مقرون به صرفه نیست هر یک ثانیه یه Request به سرور داده بشه

asrah6
یک شنبه 09 شهریور 1393, 23:09 عصر
سلام و تشکر از پاسخگویی جنابعالی
تا اینجا من اینطور متوجه شدم که می توانم جلوی ثبت شدن امتحان شخص متقلب را گرفت اما نمی توان کاری کرد که او نتواند راهکاری برای تقلب داشته باشد
مثلا :
1-جاوای مرورگر را نتواند غیر فعال کند.
2- غیر از جاوا و تایمر سمت سرور که آن هم مقرون به صرفه نیست تایمر دیگری وجود ندارد که نتواند آن را غیر فعال کند.

ahmad156
یک شنبه 09 شهریور 1393, 23:21 عصر
جاوای مرورگر را نتواند غیر فعال کند
تنظیمات مرورگر کاربر هست و کاریش نمیشه کرد ولی میتونین قبلش چک کنین که جاوا اسکریپت مرورگر کاربر فعال هست یا نه!

غیر از جاوا و تایمر سمت سرور که آن هم مقرون به صرفه نیست تایمر دیگری وجود ندارد که نتواند آن را غیر فعال کند
خیر

asrah6
یک شنبه 09 شهریور 1393, 23:42 عصر
اگر درست متوجه شده باشم در ابتدا و قبل از نمایش سوالات چک کنم اگر
جاوا اسکریپت مرورگر کاربر فعال هست سوالات را نمایش دهم و در غیر اینصورت سوالات را نمایش ندهم و اجازه ی شرکت در آزمون را ندهم اما به نظر من مشکلی که ایجاد می شود کاربر ابتدا جاوا را فعال کرده تا از این سد عبور کرده و باز بعد از نمایش سوالات می تواند جاو را غیر فعال کند تا تایمر متوقف شود همین الان چک کردم امکان آن وجود دارد.

ahmad156
یک شنبه 09 شهریور 1393, 23:44 عصر
احتمال اینکه کاربر جاوا اسکریپت خود رو غیرفعال کنه خیلی کمه.من جای شما بودم اصلاً این تعداد رو لحاظ نمیکردم.

asrah6
یک شنبه 09 شهریور 1393, 23:52 عصر
من می خواهم تا جایی که ممکنه جلوی چنین مواردی را بگیرم و حساسیت زیادم به خاطر جلوگیری از زرنگی کاربر است وگرنه با راهکاری اگر مثلا مدت آزمون 20 دقیقه است و کاربر حتی 1 ثانیه بعد دکمه ی ثبت را کلیک کرد اجازه ی ثبت جواب هایش را نمی دهم .ولی می خواهم بدانم دوستان راهکار های دیگر به نظرشان نمی رسد .