предложения по настройке аутентификации пользователей на основе вопросов - PullRequest
0 голосов
/ 06 апреля 2009

Я нахожусь в процессе настройки небольшого модуля, в котором, если пользователь, вошедший в систему в последний раз, вошел в систему на определенную дату, то он должен ответить на 10 дополнительных вопросов, прежде чем пройти аутентификацию. 10 вопросов будут вариантами и множественным выбором.

Интересно, могу ли я получить совет по настройке. Я хочу сохранить 10 вопросов и ответов для каждого из них в БД, поэтому, если вопросы или ответы будут изменены, код менять не нужно.

Я думал о двух столах Вопросы, ответы (в одном столбце будет правильный ответ на вопрос), к которому присоединяется pkey (это лучшая структура таблицы для этого?)

мой код (Java) будет получать каждый вопрос и ответы и сохранять их в хеше для каждого вопроса (это лучшая структура данных для этого?)

тогда слой представления будет иметь внешний цикл, который будет циклически повторять вопросы, и внутренний цикл, который циклически повторяет ответы на каждый вопрос. Должен ли я хранить реальный ответ как скрытую переменную html? или снова перейти в базу данных, когда пользователь нажимает кнопку «Отправить», чтобы я мог сопоставить ответы?

любые предложения помогут.

Ответы [ 2 ]

1 голос
/ 06 апреля 2009

Должен ли я хранить реальный ответ как скрытую переменную html?

Не будь глупым. Если вы сделаете это, вы просто сделаете так, что кому-нибудь легко сломать.

Что касается более широкого вопроса (вопросов), вам необходимо уточнить вещи, если вы хотите получить полезный совет. Выбор будет предопределен (вами) или предоставлен пользователем? Они будут одинаковыми для всех пользователей? Почему вы решили сделать это вместо (скажем) просто пароль? Разве вам также не нужно хранить, какие ответы верны для каких-то пользователей? Что происходит, когда вопросы меняются? И т.д.

0 голосов
/ 06 апреля 2009

мой код будет получать каждый вопрос и ответы и сохранять их в хеше для каждого вопроса (это лучшая структура данных для этого?)

Да, хеширование - это хороший подход. Простое хеширование не так уж и сильно, поэтому вы должны прочитать об этом, вероятно, вы должны добавить salt .

Должен ли я хранить реальный ответ как скрытую переменную html? или снова перейти в БД, когда пользователь нажимает кнопку «Отправить», чтобы я мог сопоставить ответы?

Нет. Скрытый HTML-код все еще виден, если вы просматриваете источник, поэтому вы будете раздавать свои ответы. Единственный способ сделать это - выполнить всю проверку на стороне сервера.

...