Как разграничить доступ к игровому веб-приложению?
Уважаемые хабралюди!
Занялся я на досуге, в качестве хобби, разработкой интерактивных образовательных тренажеров в виде веб-приложений, так, чтобы не заморачиваясь зашел ребенок по адресу, и сразу же приступил к занятиям. Ссылок не публикую, опасаясь хабраэффекта, ибо хостинг пока слабенький.
Так вот, встал передо мной вопрос, помощи в разрешении которого я решил искать на хабре.
Для начала вводная: один и тот же ребенок может совершенно свободно заниматься с нескольких разных девайсов, с динамическими IP. При этом с одного и того же девайса совершенно свободно может заниматься несколько разных ребят, вплоть до того, что они даже не родственники, например в школе. Причем сменять друг друга они могут совершенно произвольно и непредсказуемо, например, в порыве азарта забыв сменить учетку, т.е. совершенно не исключена ситуация, когда кто-либо будет «портить» или, наоборот, «улучшать» статистику на чужой учетке. И такие случаи необходимо, если не исключить, то, хотя бы, минимизировать.
При этом, для достижения целей обучения, каждого ребенка необходимо идентифицировать совершенно однозначно. Ситуация осложняется еще и тем, что типичная аутентификация типа логин-пароль-пин совершенно необязательно, что будет работать с ходу.
Идентифицировать каждого ребенка необходимо для того, чтобы интеллектуальная система могла подбирать задания строго индивидуально для каждого ребенка. Сейчас в прототипе действует псевдо-рандом генератор, и его эффективность не является даже половинной, увы.
Ясно, что где-то будут принимать участие и родители. Но совершенно не исключены и самостоятельные занятия.
Т.е. очевидно, что идентификация конкретного ученика должна быть многоступенчатая. Решение, как мне видится, лежит где-то в области анализа поведения и интерфейса. Разумеется обыкновенная аутентификация и механизм сессий тоже будут участвовать, но, сами по себе, они этот вопрос не решат.
Когда один и тот же ребенок занимается с разных девайсов — его можно идентифицировать по ПИНу. Не вопрос. Форма организации пина обсуждаема.
Но когда на одном и том же девайсе разные дети занимаются… Вот тут собака порылась.
Подчеркну, каждое решение ребенка логируется в привязке к заданию, с тем, чтобы выявить, какие задачи у него вызывают затруднения, т.к. на эти задачи нужно сделать усиленный упор. Если ребенок за девайсом один, вопросов нет. Но если их в семье или классе более одного, то возникает проблема. Дети могут портить или улучшать друг другу статистику, чего происходить не должно.
И еще тут в голову пришла проблема с коллективным решением задач. Как это пресекать я пока вообще не понимаю.