These forums have been archived and are now read-only.

The new forums are live and can be found at https://forums.eveonline.com/

EVE General Discussion

 
  • Topic is locked indefinitely.
 

New Eden Faces

First post
Author
Nova Kierra
State Protectorate
Caldari State
#121 - 2013-06-21 07:51:20 UTC  |  Edited by: Nova Kierra
Sorry, I have been busy last couple of days with real life matter, but here is an update on the status of New Eden Faces:

I have found a way to prevent voting for the same character multiple times via global session object. This session object will track character IDs of winners and losers, and if someone were to try and vote via a console by sending an XHR request they will get a nice Error 500: Already voted message. Since this is a global session object, opening New Eden Faces in incognito window or another browser, or another computer will not help the potential attacker, they will still get Error 500: Already voted. Session object is reset after all characters have been voted on, giving a fair chance for everyone to be seen.

Skip button. Initially there was no Skip button on newedenfaces.com. I added it as a feature request in the first few days that the site was up. Since then I have noticed that people would skip votes likes there's no tomorrow. In the end it just turned into abuse. You could have simply held 's' button and it would skip hundreds of characters in a matter of seconds. So with that, there will no longer be a skip functionality.

"But there are so many awfully looking characters, I don't want to be forced to vote if I don't like either of two avatars" you say. To partially remedy this problem I will create a Hall of Shame page and every day a character with the most losses will enter the hall of shame. Of course this won't go into effect right away. I'll give it a few days for wins/losses to be adjusted first.

@Skill Training Online: If anything, I should be thankful to those a**holes that were abusing the site. I know more now about general web security practices than I did a few days ago. Roll

@S Byerley: a) Yes they (or perhaps one person) were abusing it. I was looking at the console that outputs all requests and log messages in real time right before I decided to shut it down. What was happening is characters' wins/losses counts were being updated without actually clicking on the image. It was quite easy, open REST API console, select a PUT request on www.newedenfaces.com/api/characters/:id and pass in character IDs of winner and a loser. You could send it as much as your heart desires.
b) What do you mean by [the website] being stateless? The web is stateless.

@JAG Fox: Thank you, it won't be long before it's up and running again.

@Khira Kitamatsu: Forcing users to register won't solve the problem unfortunately. This is a problem of authorization rather than authentication. There was no restrictions on API that updates a vote count for winning and losing characters. Plus I think it's nice that a website doesn't force users to register or "Sign in with Facebook". Anyone can jump in and start voting right away.
Regarding to your second question I have already done that using a session object. Alternatively I could use an IP address to see who has voted on which characters. But with session object I don't have to check who voted on what, I just check: has this character been voted on?; it doesn't matter who voted; if this character has already been voted, then no one can vote for same character twice.

@Danica Kaliinen: That level of cryptography is a little beyond my understanding but thanks for suggestion. I think this is a step in the right direction. Although I found a way to prevent voting for the same character more than once, I still don't know how to prevent voting for any characters other than two characters currently present on the screen. In other words current API design still allows to vote for arbitrary character without actually seeing it on the page (as long as no one has voted on that character yet). I don't see much potential abuse here, but nonetheless it's possible. The best case scenario for a potential attacker is that he/she may vote one time for someone from a console, but will still have to wait until all 1500+ people have been voted on before doing this again.

@Eurydia Vespasian: I know, there is really nothing to gain from jacking up the votes on an avatar contest site. It's not even a major contest website, let alone popular among EVE players. But on a bright side I am glad it happened sooner than later.

@Ariel Dawn: You must be referring to that skank (Mr.Epeen's words) that had 400 votes at the end, which 4 times more votes than the next highest rated avatar. P

New Eden Faces -> www.newedenfaces.com

Indahmawar Fazmarai
#122 - 2013-06-21 13:45:12 UTC
Nova Kierra wrote:
Sorry, I have been busy last couple of days with real life matter, but here is an update on the status of New Eden Faces:

I have found a way to prevent voting for the same character multiple times via global session object. This session object will track character IDs of winners and losers, and if someone were to try and vote via a console by sending an XHR request they will get a nice Error 500: Already voted message. Since this is a global session object, opening New Eden Faces in incognito window or another browser, or another computer will not help the potential attacker, they will still get Error 500: Already voted. Session object is reset after all characters have been voted on, giving a fair chance for everyone to be seen.

Skip button. Initially there was no Skip button on newedenfaces.com. I added it as a feature request in the first few days that the site was up. Since then I have noticed that people would skip votes likes there's no tomorrow. In the end it just turned into abuse. You could have simply held 's' button and it would skip hundreds of characters in a matter of seconds. So with that, there will no longer be a skip functionality.

"But there are so many awfully looking characters, I don't want to be forced to vote if I don't like either of two avatars" you say. To partially remedy this problem I will create a Hall of Shame page and every day a character with the most losses will enter the hall of shame. Of course this won't go into effect right away. I'll give it a few days for wins/losses to be adjusted first.

@Skill Training Online: If anything, I should be thankful to those a**holes that were abusing the site. I know more now about general web security practices than I did a few days ago. Roll

@S Byerley: a) Yes they (or perhaps one person) were abusing it. I was looking at the console that outputs all requests and log messages in real time right before I decided to shut it down. What was happening is characters' wins/losses counts were being updated without actually clicking on the image. It was quite easy, open REST API console, select a PUT request on www.newedenfaces.com/api/characters/:id and pass in character IDs of winner and a loser. You could send it as much as your heart desires.
b) What do you mean by [the website] being stateless? The web is stateless.

@JAG Fox: Thank you, it won't be long before it's up and running again.

@Khira Kitamatsu: Forcing users to register won't solve the problem unfortunately. This is a problem of authorization rather than authentication. There was no restrictions on API that updates a vote count for winning and losing characters. Plus I think it's nice that a website doesn't force users to register or "Sign in with Facebook". Anyone can jump in and start voting right away.
Regarding to your second question I have already done that using a session object. Alternatively I could use an IP address to see who has voted on which characters. But with session object I don't have to check who voted on what, I just check: has this character been voted on?; it doesn't matter who voted; if this character has already been voted, then no one can vote for same character twice.

@Danica Kaliinen: That level of cryptography is a little beyond my understanding but thanks for suggestion. I think this is a step in the right direction. Although I found a way to prevent voting for the same character more than once, I still don't know how to prevent voting for any characters other than two characters currently present on the screen. In other words current API design still allows to vote for arbitrary character without actually seeing it on the page (as long as no one has voted on that character yet). I don't see much potential abuse here, but nonetheless it's possible. The best case scenario for a potential attacker is that he/she may vote one time for someone from a console, but will still have to wait until all 1500+ people have been voted on before doing this again.

@Eurydia Vespasian: I know, there is really nothing to gain from jacking up the votes on an avatar contest site. It's not even a major contest website, let alone popular among EVE players. But on a bright side I am glad it happened sooner than later.

@Ariel Dawn: You must be referring to that skank (Mr.Epeen's words) that had 400 votes at the end, which 4 times more votes than the next highest rated avatar. P


Good to know that it is coming back, it's a very nice minigame. Smile
Anslo
Scope Works
#123 - 2013-06-21 16:16:15 UTC
Please vote for your favorite Gallente gud/shite carebear psycho poster Smile

[center]-_For the Proveldtariat_/-[/center]

Miilla
Hulkageddon Orphanage
#124 - 2013-06-21 16:17:02 UTC  |  Edited by: Miilla
Title is playing with my dyslexia.
Anslo
Scope Works
#125 - 2013-06-21 16:22:20 UTC
Also, the vote seems to get stuck when I click a face. I'll click, but it'll..not load a new set? I'll have to completely close then re-open the window to get a new set, and then it still won't load a new one post-vote.

[center]-_For the Proveldtariat_/-[/center]

Miilla
Hulkageddon Orphanage
#126 - 2013-06-21 16:22:43 UTC
Anslo wrote:
Also, the vote seems to get stuck when I click a face. I'll click, but it'll..not load a new set?


Try punching it
Anslo
Scope Works
#127 - 2013-06-21 16:31:17 UTC  |  Edited by: Anslo
Miilla wrote:
Anslo wrote:
Also, the vote seems to get stuck when I click a face. I'll click, but it'll..not load a new set?


Try punching it


Didn't work. Tried clearing cache and other stuff, but no joy. This thing not good with Chrome?

EDIT: Now offline.

[center]-_For the Proveldtariat_/-[/center]

Nova Kierra
State Protectorate
Caldari State
#128 - 2013-06-21 16:34:33 UTC
Anslo wrote:
Miilla wrote:
Anslo wrote:
Also, the vote seems to get stuck when I click a face. I'll click, but it'll..not load a new set?


Try punching it


Didn't work. Tried clearing cache and other stuff, but no joy. This thing not good with Chrome?


My apologies, I forgot to shutdown the website. It wasn't meant to be up and running just yet. I am mostly done with working out the bugs, so hopefully it will be up and running very soon!

Thanks for your patience!

Nova

New Eden Faces -> www.newedenfaces.com

Anslo
Scope Works
#129 - 2013-06-21 16:36:15 UTC
Noooz put it back up, how else will I pass my Friday DDDD:

[center]-_For the Proveldtariat_/-[/center]

Khira Kitamatsu
#130 - 2013-06-21 16:56:46 UTC
Sounds good....I hope you get it up and running smoothly. Big smile

Ponies!  We need more ponies!

Nova Kierra
State Protectorate
Caldari State
#131 - 2013-06-21 20:38:58 UTC
New Eden Faces is back onlineAttentionAttentionAttention

Disclaimer: The next few days will be the beta-testing stage. Do not be upset if I reset stats now and then as I find new bugs.

In the meantime, please do try and break the website so I could fix the problems sooner than later. If you find something suspicious, like wins or losses count is not being updated properly, let me know.

New Eden Faces -> www.newedenfaces.com

Anslo
Scope Works
#132 - 2013-06-21 21:00:58 UTC
I think I broke it again. The thing is stuck on Brit Green and Deni Aylet no matter who I click.

[center]-_For the Proveldtariat_/-[/center]

Mr Epeen
It's All About Me
#133 - 2013-06-21 21:19:41 UTC
Anslo wrote:
I think I broke it again. The thing is stuck on Brit Green and Deni Aylet no matter who I click.


Me too.

It was humming along pretty well up to that point.

Mr Epeen Cool
Anslo
Scope Works
#134 - 2013-06-21 21:50:15 UTC
...so...I already went through all of them...and I want to do more...I have a problem don't I?

[center]-_For the Proveldtariat_/-[/center]

Nova Kierra
State Protectorate
Caldari State
#135 - 2013-06-21 22:02:25 UTC
Anslo wrote:
I think I broke it again. The thing is stuck on Brit Green and Deni Aylet no matter who I click.


This will happen if one the characters has already been voted on.
Quick fix is to refresh a page.
I have tested this issue specifically and very surprised to hear you are experiencing it. Did anyone have the same problem?

New Eden Faces -> www.newedenfaces.com

S Byerley
The Manhattan Engineer District
#136 - 2013-06-22 03:05:38 UTC  |  Edited by: S Byerley
Nova Kierra wrote:
@S Byerley: a) Yes they (or perhaps one person) were abusing it. I was looking at the console that outputs all requests and log messages in real time right before I decided to shut it down. What was happening is characters' wins/losses counts were being updated without actually clicking on the image. It was quite easy, open REST API console, select a PUT request on www.newedenfaces.com/api/characters/:id and pass in character IDs of winner and a loser. You could send it as much as your heart desires.
b) What do you mean by [the website] being stateless? The web is stateless.


Ah, that sucks. I hope you don't view it as any sort of attack on your work; I think Eve just has a lot of IT inclined people who like to poke at holes.

HTTP is stateless, but these days there's almost always a makeshift layer on top of it; your new global session object is an example from the sounds of it, but it does have the drawbacks you already mentioned.

I'm not much of a web dev, but I think you do want to switch over to a nonce system at some point. It's just a random string (associated with the vote options) that the server generates and sends to the client with the other junk. The client sends it back as part of their PUT, and the server checks if it's valid. It doesn't give you end-to-end protection, but that would be overkill anyway. It's a pretty common strategy so there ought to be libraries out there for it; they might be called some flavor of cookie depending on where you look.
miiral
#137 - 2013-06-22 11:16:49 UTC
Nova Kierra wrote:
Anslo wrote:
I think I broke it again. The thing is stuck on Brit Green and Deni Aylet no matter who I click.


This will happen if one the characters has already been voted on.
Quick fix is to refresh a page.
I have tested this issue specifically and very surprised to hear you are experiencing it. Did anyone have the same problem?


I can confirm this too, refresh/reload does not help.
In my case, one portrait appeared twice in a row and then it was stuck on that pair.
Nova Kierra
State Protectorate
Caldari State
#138 - 2013-06-22 13:47:57 UTC  |  Edited by: Nova Kierra
miiral wrote:
Nova Kierra wrote:
Anslo wrote:
I think I broke it again. The thing is stuck on Brit Green and Deni Aylet no matter who I click.


This will happen if one the characters has already been voted on.
Quick fix is to refresh a page.
I have tested this issue specifically and very surprised to hear you are experiencing it. Did anyone have the same problem?


I can confirm this too, refresh/reload does not help.
In my case, one portrait appeared twice in a row and then it was stuck on that pair.


There was a race condition in the code which I think was causing the problem that you mention. I updated the website. Let me know if it happens again.

New Eden Faces -> www.newedenfaces.com

JAG Fox
GunStars
#139 - 2013-06-22 19:32:48 UTC
good stuff nova! nice have this going again.

one thing i'm not sure about is allowing you to see the wins/losses on mouse-over? this only serves to bias the selection process i think. i know for myself, if i can't make a quick decision, i will give it to the one with least wins..

 Fox Pin-up

Kisses!Foxie.

Ariel Dawn
State War Academy
Caldari State
#140 - 2013-06-22 21:49:02 UTC  |  Edited by: Ariel Dawn
Really cool that it's working again, neat to see what people can do with avatars, really like the following ones that I hadn't seen before:

http://www.newedenfaces.com/characters/90433547
http://www.newedenfaces.com/characters/90209574
http://www.newedenfaces.com/characters/91457977
http://www.newedenfaces.com/characters/92948746
http://www.newedenfaces.com/characters/1499924907 <- First time I've seen good use of the monocle!

Large # of the male chars are the NPC faction leaders though, hah.

http://www.newedenfaces.com/characters/91491009 <- Best av I've seen in EVE to date!