On Wed, Feb 18, 2009 at 4:12 AM, Ian <barnrac...@gmail.com> wrote:
> Forgot to send to list.
> ---------- Forwarded message ----------
> From: Ian <barnrac...@gmail.com>
> Date: Wed, Feb 18, 2009 at 11:12 AM
> Subject: Re: [PHP] Re: Unique User Hashes
> To: Colin Guthrie <gm...@colin.guthr.ie>
> 'Twas brillig, and Ian at 18/02/09 07:09 did gyre and gimble:
>>> We dont have registration - its a once off vote anonymously using the hash
>>> in the original email. We dont want registration otherwise it would be
>>> much
>>> easier - but this was the best way I could think of without user
>>> registration :/
>> Do you have to invite people to vote or can anyone come along and cast?
>> If the former you could email a UUID token to them or similar as part of
>> the link. Once that UUID was "spent" it wouldn't allow voting again.
>> I say UUID as a regular auto-incrementing id would be fairly easy to guess
>> ;)
>> Of course this may not be appropriate in this circumstance.
>> Col
>> Unfortunately its anyone can come along and vote - no email inviting :/
> If you've already sent them an email with a hash in it, can you do something
>> like:
>> - require the hash be pasted into a field in your voting form
>> - save the hash to a cookie
>> - if the cookie doesn't exist, prompt for the hash again along with a link
>> to resend the hash
>> It's sort of 'login lite' in a way, but might be less oppressive than a
>> full login process.
> Same as above - wouldnt work because we arent recording that info...

I think preregistration is essential if you truly need to prevent
multiple votes. After all, when I go to cast my ballot in an election,
I only get the privilege because I have preregistered to do so. If
anyone can come along to a web site and vote and there is no
registration, it sounds a lot more like a web poll than an actual
ballot. Some sites I've seen that use polls seem to have done a pretty
decent job of limiting votes (none come to mind off the top of my
head) but ultimately all that any web poll has available to depend on
will be an IP address (which may or may not be the actual client,
depending on proxies and gateways) and the request headers (including
cookies). Each has its own vulnerablities, as already discussed.
Variables such as HTTP_X_FORWARDED_FOR, HTTP_X_VIA, etc. may get
closer, but ultimately these are just request headers that are easy to
forge, munge and/or discard at multiple points between the client and
your server.


PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to