邀请成员加入网站的验证

本文关键字:网站 验证 成员 | 更新日期: 2023-09-27 18:34:21

我有我的页面网址,如下所示:

http://www.ab.com/test.aspx?invitationID=XXXX

我在Page_Load中检查邀请是否真的有效:

if(!IsPostback)
{
   //login for validation. If not valid invitationID do a server.Transfer to 404 page
}

这很好用。但是,一旦用户单击注册页面上的提交按钮。他被重定向到注册成功页面。直到这里效果很好。但是现在,如果由于缓存而按下浏览器的后退按钮,他会再次看到该页面,并且可以再次注册。这是一个错误。

我确实补充说:

  HttpContext.Current.Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1));
  HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);
  HttpContext.Current.Response.Cache.SetNoStore();

在我的Page_Load,它似乎工作正常。但是,你们认为这种方法有任何安全威胁吗?!IsPostback中邀请的验证逻辑是否正确,或者无论是否回发,我都应该这样做?

邀请成员加入网站的验证

好吧,您是否invitationID在哪里保存? 如果您将其保存在数据库中,则可以受益,因此您将通过将其标记为在DB中使用来了解此invitationID已被使用。这样,您可以验证双重注册。

使用过这种邀请注册,我向 URL 链接发送电子邮件,然后在单击该链接时进行验证。 在发送链接之前,我生成一个唯一的字符串并将其保存在数据库中。

"http://www.ab.com/test.aspx"是注册页面吗?如果是,则不得对缓存执行任何移动。因为对于注册用户 - 注册页面必须自动重定向到主页。您必须仅在注册过程中检查邀请 ID:

Regsister(..., Request.QueryString["invitationID"]);

是的,正如 FosterZ 所说 - 您必须将 InvitationId 与数据库中的用户帐户相关联。