[ic] Possible bug: Too many new ID assignments for this IP address
mike at perusion.com
Wed Aug 24 09:45:38 EDT 2005
Quoting John1 (list_subscriber at yahoo.co.uk):
> On Wednesday, August 24, 2005 2:29 AM, mike at perusion.com wrote:
> >I am perfectly willing to believe I have screwed up, but I had thought
> >this had been addressed with
> >Limit robot_expire 0.05
> >This changes the 24-hour period to one hour. And since the first call
> >is always to count_ip() without incrementing the counter (and
> >therefore the mtime) the maximum lockout should be that one hour.
> Do you mean "Since only the first call to count_ip() increments the counter
> (and therefore the mtime) the maximum lockout should be that one hour?
> If I am reading the code in count_ip correctly the addr_ctr/IP file will
> only be deleted if its modified time is greater than "Limit robot_expire"
> If I understand correctly, the code in sub new_session calls count_up(1)
> (and therefore updates mtime if the addr_ctr/IP file already exists) each
> time a new session is created.
> Consequently the addr_ctr/IP file will keep counting up unless there is a
> *gap* of greater than "limit robot_expire" before a new session id is
> requested by the same IP address.
Yes, this is correct.
> i.e. So if you use "Limit robot_expire 0.05", provided there are at least
> 2 requests per hour for a new session id from the same IP address the
> addr_ctr/IP file will keep counting up forever.
Well, until it locks someone out for an hour.
> Then after a few days or weeks RobotLimit will eventually be exceeded and
> the IP address will then be *permanently* locked out. By permanent I mean
> until there is a gap of at least 1 hour between requests for new session
> ids from the IP address in question.
Aha, there is my misunderstanding. I didn't see an hour as permanent.... 8-)
> >If you have such traffic that you assign 100 legitimate IP addresses in
> >an hour, it means you would have to have a much better robot defense
> >than RobotLimit can supply....
> So what I am saying above is that you don't need 100 accesses from the IP
> address to maintain a lockout, you only need at least 2 each hour to
> maintain the lockout situation.
This is correct.
Looking at it, it may indeed be less than ideal. Perhaps someone can
suggest an algorithm -- nothing clean and correct comes to my mind (new
file every day, counting down instead of up if time > Limit->robot_expire
* .1, etc.).
In the interim, I would think
Limit robot_expire 0.002
would work in all but the most extreme cases, where again I suggest you
need more than RobotLimit to defend you from the onslaught.
Perusion -- Expert Interchange Consulting http://www.perusion.com/
phone +1.765.647.1295 tollfree 800-949-1889 <mike at perusion.com>
Be patient. God isn't finished with me yet. -- unknown
More information about the interchange-users