Thats not a bad idea. Not entirely foolproof, but would take a significant
amount of work to cheat the system, and would probably put any cheating
attempts off.

One suggestion i would have, is that a good stratergy (as with most security
issues) is to give away as little information as possible.  So if a vote is
detected as a duplicate, then still give the response as if it had been
accepted.  This slows down any progress made on cracking your system.

Daniel.

-----Original Message-----
From: Adam Hardy [mailto:[EMAIL PROTECTED]
Sent: 13 April 2004 12:35
To: Struts Users Mailing List
Subject: Re: [slightly OT] defensive strategy


On 04/13/2004 12:39 PM McCormack, Chris wrote:
> Interesting problem. You could implement image tickets, ie for every
>  user that wants to submit a form you generate a random sequence of
> characters as an obscured image.

That's not in the spec, thankfully! I'm only trying to put off the
semi-determined attacks and any security should be transparent.

On 04/13/2004 12:38 PM Daniel Perry wrote:
> There are lots of ways to counter this. The simplest is a combination
>  of session + cookie. Most people wont know how to / have any desire
>  to delete the cookie.

Problem with scripted attacks is that they drop the cookies and session
ids.


> IPs are useful, but be careful: - Some of the big ISPs (eg freeserve
>  in the uk) have 'hidden' proxy servers, so if popular you may get
> more than one vote per hour from the same ip legitimately. - NAT -
> more that one person on a private NATed network may vote in close
> proximity!

Rats! I knew there would be some problem with it. I don't want to block
any legitimate voters.


Actually I think I may have a solution now, to exclude scripted votes -
I shall just put a flag in the session to show that the user has
actually called up the HTML to see the vote.

That way, any script which fires a submit at the voting system will be
rejected since it didn't first instantiate a session.

Thanks for the ideas. Certainly helped my thinking.

Regards
Adam





>
> -----Original Message----- From: Adam Hardy
> [mailto:[EMAIL PROTECTED] Sent: 13 April 2004 11:23
> To: Struts Users Mailing List Subject: [slightly OT] defensive
> strategy
>
>
> Sorry for posting this OT question but I've got an issue that people
>  on this list are very likely to have tackled:
>
> I am developing a traditional online survey app, the kind of thing
> that alot of people must have done. I am wondering how to protect it
>  from script-kiddies who might want to see if they can bombard it
> with fake votes.
>
> It's basically public and anyone can take part in the surveys it will
>  run.
>
> I put a switch to check for a flag in the session so that people
> don't vote more than once from the websites where the surveys will be
>  deployed.
>
> But I am worried that kids writing scripts will not be stopped by
> session flags. Is it worth writing an algorithm to store the IP
> addresses used for the last hour? Or can they spoof IP addresses?
>
> If it is useful noting the IP addresses, how best should I store
> them? In a hashtable in application scope? In the database? In a
> session EJB?
>
> Thanks!
>
>
>
>
>
> -- struts 1.2 + tomcat 5.0.19 + java 1.4.2 Linux 2.4.20 Debian
>
>
> ---------------------------------------------------------------------
>  To unsubscribe, e-mail: [EMAIL PROTECTED] For
> additional commands, e-mail: [EMAIL PROTECTED]
>
>
>
> ---------------------------------------------------------------------
>  To unsubscribe, e-mail: [EMAIL PROTECTED] For
> additional commands, e-mail: [EMAIL PROTECTED]
>
>


--
struts 1.2 + tomcat 5.0.19 + java 1.4.2
Linux 2.4.20 Debian


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to