Alvaro Lopez Ortega wrote:
It looks really interesting, but we do need a solution for this
right now. I've had to add two more rewrite rules today because we
are still being spammed by some morons. :-//
So, the only way I can think of is to write some sort of script in
order to access the trac.db file directly.. it'd be an awful work
around though.
the only other solution I can think of at this time (and I do hate this
particular technology) is a CAPCHA barrier. This will not defend
against the Third World cyber café attack but it will defend against
automated or handicapped person attack. But I have a sneaking suspicion
you don't have many blind users and as far as I know, I'm the only upper
limb impaired one.
there are many CAPCHA add-ons in different languages so you should be
able to find one you can use in TRAC.
*if* you wanted to go with the proof of work solution, we would need
someone who really knows browser applets in Java in order to do it at
all well.
in this context, every request would have a "number of bits required"
indicator hidden variables, headers or cookies. The Java applet
generating a token would run in background as the user does what ever it
is they're going to do. On submission, if the token is not complete,
then give the user a message about preparing anti-spam response, please
be patient, don't hit reload etc. etc.
all responses without an appropriately sized tokens should be
tossed/reject etc. otherwise, take them and use them.
A refinement of this is necessary when spammers start generating tokens.
In a beginning, spammers won't generate tokens because they don't know
about them, they have other, higher value targets they can go after for
lower-cost which means you can keep your stamp values low and minimize
the impact on legitimate users. Eventually however spammers will catch
on and at that point it would be necessary to implement a differential
rate system.
A differential rate system (a.k.a. reputation proxy) counts on the
ability of the recipient to differentiate between token generators.
Legitimate token generators get smaller demands for token sizes as they
develop a reputation for being "good people". Unknown token generators
are charged the standard amount until they to develop a reputation.
Known bad token generators are charged increasingly higher amounts.
this ability to differentiate between user classes allows you to charge
much higher rates to attackers/spammers and correspondingly lower rates
to legitimate users. In other words, you reward users that report bugs
frequently and penalize those who report bugs once in awhile. This
should have the net effect of increasing the number of bug reports. ;-)
it's important to practice a bit of subterfuge and make token generators
with a bad reputation think their data has been accepted when in
reality, it's been discarded or subject to human review.
Identification of token generators can be difficult. IP address is the
easiest but address/user associations are not as stable as they had
been. Client-side embedded identification can work as long as the
identifier can't be replicated among attackers and reused (i.e. parallel
double spending). this would take a bit of thinking before coming up
with a solution. But even simple IP address blocks would be of some use.
that's the technique in a nutshell. And I have three more to write up
and make slides for (not including the 20 odd slides with fundamentals
and application of proof of work systems). :-)
---eric
_______________________________________________
Cherokee mailing list
[email protected]
http://www.0x50.org/cgi-bin/mailman/listinfo/cherokee