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