2011-08-09 2 views
3

교육 기관용 온라인 시험 사이트를 작성하고 있습니다. 시간 제한은 각 평가에 대해 설정할 수 있으며 사용자가 검사를 시작하면 서버에 새 타임 스탬프가 만들어집니다. 문제는 우리 학교의 컴퓨터가 자주 잠기고 학생들이 시험 시간을 잃고 다시 시작해야한다는 것입니다.타임 스탬프를 동적으로 변경 - 제안 사항?

타이머를 쿠키로 저장할 수 있다고 생각했지만 쉽게 손상 될 수 있습니다. 어떤 제안? 감사.

+1

저는 각 컴퓨터의 시험 결과와 컴퓨터 잠금을 강요당한 어떤 시험에 항의 할 것입니다. – Mchl

+0

하하. 내 잘못이 아니야. 컴퓨터는 주 정부 (학생 노트북)에서 관리합니다. D : –

+0

그건 네 잘못이야. 나는 그 시스템에 문제가 있다고 말하고있다. – Mchl

답변

1

사용자에게 연결된 데이터베이스에 타임 스탬프를 저장할 수 있습니다 (시험을 수행하는 경우 로그인 한 것으로 가정합니다). 온라인 상태인지 확인하기 위해 몇 초마다 ajax 호출을 수행 할 수 있습니다.

이 아약스 검사에서는 마지막 온라인 상태를 나타내는 새로운 타임 스탬프를 사용하여 데이터베이스를 업데이트 할 수 있으므로 컴퓨터가 잠겨 다시 시작해야하는 경우 얼마나 많은 시간이 손실되었는지 알 수 있습니다. 당신은

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

처럼 쿠키에 저장하고 같은 데이터베이스에있는 모든 필요한 정보를 저장하는 고유 한 해시를 생성 할 수

+2

그리고 영리한 학생으로서, 화면에서 질문하는 동안 이더넷 케이블을 뽑거나 플러그를 뽑을 수 있습니다. – Mchl

+0

흠, 좋은 지적이 있어요 ... 쉽게 사용할 수없는 자바 스크립트가 포함되어 있지 않은 문제를 고칠 수는 없습니다. – Kokos

0

: 나중에

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

및 (컴퓨터를 다시 시작할 경우)를 데이터베이스에서 모든 정보를 얻을 수 있습니다 :

SELECT * FROM examination 
WHERE student_hash = '$cookie' 

이렇게하면 학생이 ' 타임 스탬프를 바꿀 수 있습니까?

+0

흠 ... 나는이 보안에 대해 약간 걱정하고있다. 모든 컴퓨터가 하나의 IP를 통해 연결되며 쿠키는 쉽게 가짜가 될 수있다. –

+0

@TastyMuffins 내부 IP를 사용할 수 없습니까? – Teneff

+0

Nup. 각 교실에는 자체 라우터가 있습니다 -> 중앙 라우터 : ( –

0

때로는 어려울 수 있음을 알고는 있지만 딜레마에 대한 유일한 신뢰할 수있는 솔루션은 신뢰할 수있는 네트워크입니다.

그러나 클라이언트 상태를 확인하는 다른 통신 매체 또는 경로는 무엇이 부족합니까? 도메인 컨트롤러가 LAN상의 클라이언트를 볼 수 있는지 확인할 수 있습니까? PC가 있지만 웹 클라이언트가 없다면 사용자가 관리하는 상황이 더 쉬울 수 있습니다. 뭔가 (도메인 컨트롤러, 다른 네트워크 위치?) 네트워크에서 클라이언트의 모양 또는 사라짐을 기록 할 수 있습니까?

어떤 방법 으로든 악용 할 수 있습니다. 나는 진정한 확신은 인간의 빈번한 모니터링과 재시작을 경험 한 사용자의 유일한 확신이라고 생각한다.

관련 문제