Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Diversifying password.value.blacklist.previous #269

Closed
stuartpb opened this issue Feb 23, 2017 · 1 comment
Closed

Diversifying password.value.blacklist.previous #269

stuartpb opened this issue Feb 23, 2017 · 1 comment

Comments

@stuartpb
Copy link
Member

So, I'm looking at #96, and redefining previous so that it doesn't have a polymorphic value (per #164) seems like it'd knock out two schema-unfriendly birds with one stone (per #146, and following the lead of #149).

Moreover, there are two kinds of "previous password" restrictions that a site can put in place: there's "the last X passwords", as the value is currently defined - but there's also time-based recency (similar to #257), where a site can blacklist passwords used in the last few months (for instance).

As such, I think this field should get split into password.value.blacklist.previous.count and password.value.blacklist.previous.period, where the former is a number, and the latter is a timespan string (where I'm thinking "mo" might be used to represent months in a way that can't be confused with minutes, though I'm also considering having "months" just be represented as a number of days times 30 unless it can be proven that that's not how they're counting months).

This would also open up a more comfortable field for sidestepping the "JSON not having a way to represent Infinity" problem noted in #200, by letting "all the passwords you've ever had" be represented as period: forever instead of a polymorphic value for the count.

@stuartpb stuartpb added this to the v0.1.0 milestone Feb 23, 2017
@stuartpb
Copy link
Member Author

I'm going to go forward with this now, because:

  • It doesn't require that many rewrites
  • It solves at least one open issue directly, and makes a few others much easier
  • It makes profiles more flexible and capable of accommodating something they can't do in the current design

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant