Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>This question is very similar to <a href="https://stackoverflow.com/questions/938031/implementing-secure-unique-single-use-activation-urls-in-asp-net-c/938076#938076">Implementing secure, unique “single-use” activation URLs in ASP.NET (C#)</a>. </p> <p>My answer there is close to your scheme, with a few issues pointed out - such as short period of validity, handling double signups, etc.<br> Your use of a <strong>cryptographic</strong> nonce is also important, that many tend to skip over - e.g. "lets just use a GUID"... </p> <p>One new point that you do raise, and this is important here, is wrt the idempotency of GET.<br> Whilst I agree with your general intent, its clear that idempotency is in direct contradiction to one-time links, which is a necessity in some situations such as this. </p> <p>I would have liked to posit that this doesn't really violate the idempotentness of the GET, but unfortunately it does... On the other hand, the RFC says GET <strong>SHOULD</strong> be idempotent, its not a MUST. So I would say forgo it in this case, and stick to the one-time auto-invalidated links.</p> <p>If you <em>really</em> want to aim for strict RFC compliance, and not get into non-idempotent(?) GETs, you can have the GET page auto-submit the POST - kind of a loophole around that bit of the RFC, but legit, and you dont require the user to double-optin, and you're not bugging him...</p> <p>You dont really have to worry about preloading (are you talkng about CSRF, or browser-optimizers?)... CSRF is useless because of the nonce, and optimizers usually wont process javascript (used to auto-submit) on the preloaded page.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload