× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



On 12/12/05, Wayne McAlpine <wayne.mcalpine@xxxxxxxxxxxxxxxxx> wrote:
> We make available access to a large database using CGI programs.  More
> and more frequently, I am seeing attempts to download the entire data
> base of millions of records by hitting the server with a script to
> sequentially access every record.
>
> I'm trying to come up with a method of preventing this kind of wholesale
> download.  Many web sites now use a challenge system consisting of an
> authorization word in graphics format that the user must key in before
> being granted access.  The problem is that this solution imposes a
> burden on our legitimate users that shouldn't be necessary, so I'm
> looking for a solution that doesn't involve any additional steps for our
> users.
>
> The first few times this happened, I changed the Apache server
> configuration to deny access to the offending IP address, but it's
> impossible to monitor log files to keep up with the ever-changing IP
> addresses where these attacks originate.
>
> Anyone have any thoughts on how to approach this problem?

One obvious solution is to force authentication, but this requires
administration.  You could setup some kind of "create your own user"
system, but then the offenders will

I have heard of anti-spam mail servers that, when they sense that a
server is sending huge volumes, they slow down their responses to that
server so as to essentially disable it.  You could implement something
similar, effectively "throttling" the offending servers.  Count
queries by IP address in your CGI program.  Then, put a delay in the
job, holding the connection open and slowing the their server.  Set
the delay so that it won't matter to the standard user; if the typical
user makes 10 requests in a delay, then for example, set the delay to
1 sec * (requests - 10).  Or after a certain number of tries in a
given time period return a "Server busy, please try again" message.

You could also get mean and return bogus data to the offending
systems, although that might not be legal from a governmental
organization.

This is similar to a Denial of Service attack, so you might also
search for "Apache" and "DoS" on Google; there might be some ideas.

Good luck.

--
Tom Jedrzejewicz
tomjedrz@xxxxxxxxx


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.