带算术运算的Captcha。哪里可以保存答案?

时间:2013-12-11 13:30:14

标签: asp.net-mvc

我正在添加一个简单的算术运算,例如。 “2 + 4 =”,验证码到MVC网站。

我生成随机数和随机操作,并在视图中显示问题。

当提交表单时,我需要知道使用了哪些数字和操作来验证答案。

我应该在哪里“保存”这些值,以便稍后验证?

  1. 在会话变量中?

  2. 在Cookie中?

  3. 在ViewModel中将它们放在隐藏的输入中?

  4. 有人可以就此提出建议吗?

1 个答案:

答案 0 :(得分:1)

Cookie用于跨会话保存数据,这与验证码背后的想法不兼容。将它存储在cookie中甚至可以带来什么好处?下一次登录将在新会话中进行,并将进行不同的算术运算 这并不是说你不希望这个客户端在一起。

将它存储在会话中应该没问题:通常会在会话到期时进行重新编码,因此它也会自动删除。

不要使用隐藏的输入。这对于专门针对你的人来说太容易了。