我用的是Netbeans java。
我有一个2因素认证我的登录,密码和通过邮件发送的验证码。我已经为用户行分配了一个整数值,一旦他验证了。
但是,我需要检查每个JSP页面的verifystatus,以确保他没有绕过第二因素身份验证,并通过手动输入URL来访问JSP页面。
现在我的JSP可以在他登录后访问,而不需要通过第二次身份验证,我想确保登录的用户在访问任何JSP页面之前经过两次身份验证。
任何想法?
您可以使用用户session - HTTPSession
。用户验证密码登录后,设置会话属性factor_variable
。在第二个因素身份验证之后,为这个会话变量设置一些值。在加载任何JSP页面之前,检查会话变量factor_variable
是否为而不是 null
。
1. 如果用户已经通过了第二因素认证,那么这个factor_variable
不是null
。
2。如果factor_variable
是null
,那么用户已经绕过了第二因素身份验证。
基本上你有三个选择:
-
在每次页面加载时查询数据库,检查'verified'标志是否为1。
-
在会话cookie中存储'已验证'标志。如果有人真的想要"破解",这是相对容易的,因为值以纯文本形式存储。您当然可以加密该值以获得更好的安全性。
-
将所有用户信息包装在java对象中,包括'verified'标志。在登录时在会话中填充和存储对象。在每次页面加载时查询会话中的对象,并检查那里的标志。