Sometimes people ask me, why are you doing this or that? It doesn’t make you any money, what’s the point?. Sometimes it’s fun to do things just because you can. Just to see what can or can’t be done.
At the time of making this post, ‘esrun’ is the 5th most popular word in the E section of Urban Dictionary.
Cleaning up our image
If you look at the definition for spammer on Urban Dictionary, it doesn’t paint a pretty picture. With enough fake votes, we can clean that up.
Video showing auto votes using multiple IP addresses
How to automate votes on Urban Dictionary
Fortunately to place a vote on Urban Dictionary, you simply need to make a regular GET request. This means that all you have to do is hit a URL to place a vote – meaning you can automate votes by placing an iframe on your website. Every visitor to your site will be placing a vote without even knowing.
1) Start by finding the defid – a unique ID assigned to each definition. You can do this by viewing the source code of the page and searching for the definition text. You’ll then see the defid as shown in the following image.
2) Create the voting URL by swapping out the defid in the following URLs.
Vote up on esrun: http://www.urbandictionary.com/thumbs.php?defid=1929361&direction=up
Vote down on esrun: http://www.urbandictionary.com/thumbs.php?defid=1929361&direction=down
3) Update your website by placing an invisible iframe to the voting URL.
iframe to vote up on esrun: <iframe src=’http://www.urbandictionary.com/thumbs.php?defid=1929361&direction=up’ width=’0′ height=’0′></iframe>
How could Urban Dictionary protect against this?
Protecting against the automated approach shown in the video above would be difficult, but there are things Urban Dictionary could implement to protect against simple methods like the iframe one described above:
- Check referer address – Not ideal since some people block their referer and would be unable to vote
- Require login – I think a lot of people wouldn’t waste their time creating an account and logging in
- Add a vote hash – Just like Twitter, Reddit etc. Create a unique voting hash based on the IP address and require this to be passed with the vote.
It’s as simple as that. You can go have fun messing with votes on Urban Dictionary. Be aware that it can take awhile before Ubran Dictionary reorder the list, even if your preferred definition now has more votes.
UPDATE: About 2 weeks after I made this post, UrbanDictionary changed their voting system to require a POST rather than GET (as I suggested in this post). Which essentially breaks the basic iframe auto voting method described here.
2 Comments »
Leave a comment