3

教育機関向けのオンライン試験サイトを作成しています。評価ごとに時間制限を設定できます。ユーザーが試験を開始すると、新しいタイムスタンプがサーバーに作成されます。問題は、学校のコンピューターが頻繁にロックされ、生徒が再起動を余儀なくされ、試験の時間が失われることです。

タイマーを Cookie として保存できることがわかりましたが、これは簡単に侵害される可能性があります。助言がありますか?ありがとう。

4

3 に答える 3

1

ユーザーにリンクされているデータベースにタイムスタンプを保存し(試験を行っている場合はログインしていると思います)、数秒ごとに ajax 呼び出しを実行して、ユーザーがまだオンラインかどうかを確認できます。

この ajax チェックでは、データベースが最後にオンラインになった時刻を示す新しいタイムスタンプでデータベースを更新できるため、コンピューターがロックして再起動する必要がある場合は、失われた時間を把握できます。

于 2011-08-09T07:10:50.303 に答える
0

これが難しい場合があることは承知していますが、ジレマに対する唯一の本当に信頼できるソリューションは、信頼できるネットワークです。

しかし、それが欠けている場合、クライアントの状態を確認する別の通信メディアまたは経路はどうでしょうか? ドメイン コントローラが LAN 上のクライアントを認識できることを確認できますか? PC は存在するが Web クライアントが存在しない場合は、ユーザーが操作した状況である可能性が高くなります。何か (ドメイン コントローラー、他のネットワークの場所など) は、ネットワークからのクライアントの出現または消失に気付くことができますか?

どんな方法でも、どういうわけか悪用される可能性があります。唯一の本当の保証は、再起動の頻度とユーザーの経験を人間が監視することから来ると思います.

于 2011-08-09T07:32:16.647 に答える
0

次のように一意のハッシュを生成してCookieに保存できます

$cookie = md5( $student_name . $test_start_timestamp . $computer_ip );

次のように、必要なすべての情報をデータベースに保存します。

INSERT INTO examination
SET student_hash = '$cookie',
test_start = '$test_start_timestamp',
computer_ip = '$computer_ip'

以降(コンピューターが再起動された場合)、データベースからすべての情報を取得できます。

SELECT * FROM examination
WHERE student_hash = '$cookie'

この方法では、学生はタイムスタンプを変更できません

于 2011-08-09T07:19:52.477 に答える