On Aug 3, 2009, at 5:51 PM, mr.freeze wrote:

>
>> Yes, I was going to point that out. But if you turn off IS_STRONG for
>> login, then it doesn't matter, does it?
>
> Correct.  IS_STRONG is not a default validator for the password field
> (only CRYPT) so if you don't have complexity requirements, just avoid
> using it.

I mean: use it, but also use something like your hack (excuse the  
expression) for turning it off specifically for login requests, and  
leaving it enabled for everything else.

>
>> There's another reason to turn off IS_STRONG for logins, too: it  
>> leaks
>> information to an attacker about the nature of the required password
>> content, significantly pruning his dictionary.
>
> Good point.
>
> On Aug 3, 7:40 pm, Jonathan Lundell <jlund...@pobox.com> wrote:
>> On Aug 3, 2009, at 5:33 PM, mr.freeze wrote:
>>
>>> Just a quick message to point out that if you use IS_STRONG, you  
>>> must
>>> override Auth's random_password function to match its complexity
>>
>> Yes, I was going to point that out. But if you turn off IS_STRONG for
>> login, then it doesn't matter, does it?
>>
>> There's another reason to turn off IS_STRONG for logins, too: it  
>> leaks
>> information to an attacker about the nature of the required password
>> content, significantly pruning his dictionary.
>>
>> I think that the IS_STRONG-login-bypass trick (or something like it)
>> ought to be in the manual under the IS_STRONG entry.
>>
>>> or
>>> users won't be able to login after resetting their password.  Here's
>>> what I did in my model:
>>
>>> class MyAuth(Auth):
>>>    def random_password(self):
>>>        import string
>>>        import random
>>>        password = ''
>>>        specials=r'!...@#$*?'
>>>        for i in range(0,3):
>>>            password += random.choice(string.lowercase)
>>>            password += random.choice(string.uppercase)
>>>            password += random.choice(string.digits)
>>>            password += random.choice(specials)
>>>        return ''.join(random.sample(password,len(password)))
>>
>>> auth=MyAuth(globals(),db)
> --~--~---------~--~----~-------




--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To post to this group, send email to web2py@googlegroups.com
To unsubscribe from this group, send email to 
web2py+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to