0

我正在设置一个小模块,如果用户在某个日期最后一次登录,那么他必须在通过身份验证之前回答 10 个选项问题。10个问题将是选项和多项选择。

想知道我是否可以在设置时获得一些建议。我想将每个问题的 10 个问题和答案存储到数据库中,因此如果更改了问题或答案,则不需要更改代码。

我正在考虑有两个表问题,答案(一列将有问题的正确答案),它们将由 pkey 连接(这是最好的表结构吗?)

我的代码(Java)将获取每个问题和答案并将它们存储到每个问题的哈希中(这是最好的数据结构吗?)

然后视图层将有一个循环遍历问题的外部循环和一个循环遍历每个问题的答案的内部循环。我应该将真实答案存储为隐藏的 html 变量吗?或者当用户单击提交时再次转到数据库以便我可以匹配答案?

任何建议都会有所帮助。

4

2 回答 2

1

我应该将真实答案存储为隐藏的 html 变量吗?

别傻了。如果你这样做,你只是让任何人都很容易破解。

至于更广泛的问题,如果您需要有用的建议,则需要大量澄清。选择是(由您)预先确定还是由用户给出?它们对所有用户都一样吗?你为什么选择这样做而不是(说)只是一个密码?您是否还需要在某处存储对哪些用户正确的答案?当问题改变时会发生什么?等等。

于 2009-04-06T16:36:58.657 回答
0

我的代码将获取每个问题和答案并将它们存储到每个问题的哈希中(这是最好的数据结构吗?)

是的,散列是一个很好的方法。简单的散列并不是那么强大,所以你应该阅读这个,你可能应该添加一个salt

我应该将真实答案存储为隐藏的 html 变量吗?或者当用户单击提交时再次转到数据库以便我可以匹配答案?

不会。如果您查看源代码,隐藏的 HTML 仍然可见,因此您将给出答案。唯一的方法是在服务器端进行所有检查。

于 2009-04-06T16:38:41.803 回答