On Aug 21, 2011, at 11:20 AM, Anthony wrote:

> On Sunday, August 21, 2011 1:56:00 PM UTC-4, Jonathan Lundell wrote:
> On Aug 21, 2011, at 9:27 AM, Jonathan Lundell wrote:
> > On Aug 21, 2011, at 8:33 AM, Jonathan Lundell wrote:
> > 
> >> I do something like this. Your details might vary.
> >> 
> >> #  invoke IS_STRONG only for password creation, not password checking
> >> if "login" not in request.args:
> >>   auth.settings.table_user.password.requires.insert(0, IS_STRONG(min=8, 
> >> max=0, special=1))
> >> 
> >> ...but I also define the entire auth table, so Massimo's method is handier 
> >> if you're using the default.
> >> 
> >> I think it'd be good if auth worked this way by default. There's no reason 
> >> to enforce IS_STRONG on login, and actually there's good reason *not* to, 
> >> since it enables an attacker to learn things about the actual password.
> > 
> > Actually, as I review the source, the only place I see IS_STRONG being 
> > invoked by default is in the admin app. So if you're adding IS_STRONG to 
> > your auth forms, just make it conditional as above.
> 
> ...and if that's right, perhaps we could put something like that (but with a 
> default IS_STRONG call?) into the scaffolding app, as an example.
> 
> Looks like the recent change in trunk was to CRYPT, not IS_STRONG. CRYPT now 
> checks for a minimum password length, which defaults to 4. If you're already 
> using IS_STRONG, then I suppose you could just set the min_length argument of 
> CRYPT to 1.
> 

Except that CRYPT is invoked inside Auth. 

1) I don't see a good reason for enforcing password length in CRPYT, and 2) 
password length (or strength) should never be enforced while checking.

Reply via email to