The scenario leveille brings up is the one I'm in.  This is more of an
extranet than an intranet.  The server is off-site, and is being
accessed by many people who all share the same IP.

My solution was this:

1: upon entry to user login form, check if user's IP is associated
with a threshold number of failed attempts
2: if IP is not on banned list, then allow display of login form
3: for first few attempts, use session data, to avoid unnessary
inserts into database
4: if user fails after a handful of attempts, then write failed
attempts to database increasing count for this IP

This way if a user just makes a typo a couple times, the failed
attempts don't get registered, and the database table remains a more
accurate count of people who were trying to login with absolutely no
clue about their password -- ie hackers stabbing in the dark.


On May 23, 5:47 am, leveille <[EMAIL PROTECTED]> wrote:
> Bear in mind that the browser fingerprint would only be reliable if
> the server to which the clients are making the request is in the same
> network (behind the same firewall).  In that case the IP address would
> be a DHCPd 1.9.168.*.* variation.  If the server to which the requests
> are going to is outside the network, the requests would all show as
> originating from the same IP address.
>
> On May 22, 8:33 pm, BrendonKoz <[EMAIL PROTECTED]> wrote:
>
> > If you're worried about using just the IP, why not store a browser
> > fingerprint in the database and use that as the mechanism for
> > identifying an identical user?  A simple browser fingerprint would be
> > the IP and UserAgent string concatenated toghether, and then hashed
> > (MD5 for instance).  Although this technically could lead to
> > duplication eventually, the chances that you'd have multiple hits on
> > the same IP would be greater.  You can find more about browser
> > fingerprinting with a simple web search (and find better methods).
>
> > On May 22, 4:29 pm, aranworld <[EMAIL PROTECTED]> wrote:
>
> > > Thanks for the feedback.  I will add some database functionality to it
> > > as well.
>
> > > One problem I am coming across is that many of my users are all in the
> > > same office with identical IP addresses.  So if one user makes 5
> > > unsuccessful attempts, I run the risk of locking out everyone else in
> > > the office.
>
> > > I'm thinking that I can have a session based lockout set at 5, but
> > > then make a database lockout with a much higher limit to compensate
> > > for the fact that many users could all enter wrong passwords within a
> > > week's time.  Even if the limit is as high as 100, I still think that
> > > is very likely to combat brute force methods, which usually require
> > > 10s of thousands of entries to have any hopes of success.
>
> > > On May 22, 12:58 pm, davidpersson <[EMAIL PROTECTED]> wrote:
>
> > > > There's a brute force protection behavior available over at the
> > > > bakery:http://bakery.cakephp.org/articles/view/brute-force-protection
>
> > > > It may need some changes to make it work with 1.2 but I think it's
> > > > simple and does it's job.
>
> > > > On May 22, 9:13 pm, aranworld <[EMAIL PROTECTED]> wrote:
>
> > > > > I am trying to figure out the most reliable way of restricting login
> > > > > attempts while using the Auth Component.
>
> > > > > Here is my best stab at the problem thus far:
>
> > > > >http://cakeforge.org/snippet/detail.php?type=snippet&id=220
>
> > > > > I'd love to hear what other people have done, or what they think of
> > > > > the method I am using in the code snipped I've linked to.
>
> > > > > -Aran
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to