On my website users do not log in, yet they can interact with the site. For example, they can vote on categories.
What would be the best way to prevent a user (even though they are not logged in) from voting for the same category more than once.
My initial thought was to store a user's IP address, when they vote, their IP along with the category voted for is stored in my database. Voting again for the same category will not have any effect.
I know proxies etc can circumnavigate this, but it's only meant to be a casual system to fool basic users.
Is there a better way to do this?