Очевидно, что электронные учебники можно подразделить на несколько видов с точки зрения расположения их программного ядра... Во-первых, сетевые. Во-вторых, локальные. В-третьих, смешаные.
И хотя современный мир нам все громче говорит о том, что все мы уже подключены к Интернет и только в связи с ним есть будущее развитие всех технологий, место для употребления клиентских (client-side) решений все же еще остается и мы будем его периодически искать.
Нам приходилось готовить чисто локальные версии электронных учебников (не будем сейчас рассматривать плюсы и минусы такого решения), а как в такой ситуации быть с тестовыми заданиями, когда и вопросы тестов и варианты ответов на них, а более того и указание на правильные варианты необходимо хранить у конечного пользователя под носом?..
Очевидно, что опираться на результаты таких тестов не стоит, но ведь можно провести самоконтроль усвоения материалов...
Наше предложение достаточно простое: храним варианты вопросов и ответов в файле формата JSON, динамически формируем страницу HTML с тестом, а вместо правильных вариантов ответов храним в этом же или другом (не суть важно) JSON файле пары результатов вычисления hash-функций для текста вопроса и варианта правильного ответа по одному из возможных алгоритмов. После выбора пользователем ответа просто сравниваем его hash с результатом, храняшимся в базе... Конечно, такой подход не остановит профессионала, но может ему будет проще все же выучить предмет, чем копаться в исходном коде.
Для большей защищенности напомним о возможности обфускации кода.
Ссылки в помощь: Javascript + MD5; обфускация Javascript.
Вопросы и предложения приветствуются в комментариях.







