Web registration using keys?
How would you know that the API key belongs to the user who is about to register with your site? I already pointed out that the API key system makes User authentication (e.g. like login with google, twitter, github etc.) for 3rd party websites pretty impossible.
https://forum-en.gw2archive.eu/forum/community/api/HEADS-UP-OAuth2-being-replaced-next-week/5049146
You don’t, i could technically fetch the valid existing API keys of random users and use them at my whim on any third party application(say someone has created an API key with all permissions, i use a script to test randomly a plethora of keys and save the successful ones, then continue to fetch all of their data – say specifically their transaction history). Then if i have malicious intent i could filter out a specific account name (albeit this will still only be possible if they have a valid key in existence).
However, even though i agree this is pretty full of holes for registration, you could still get away with it. For example if malicious user uses valid users key to register, he can. If a valid user generates new key and uses the key to register, it could override the available info this is also true vice versa in case the malicious user comes across your key (make an FAQ or something on your app, because i think this problem might become common if anyone decides to run some public service tied to registration). That’s one way of fixing the hole but it’s a pretty big gaping hole .. I also think that currently guild applications and guild forums would be compromised, just need one individual with too much time and proxies on their hand to send out guild applications on behalf of valid users and cause headache for both the guild and the valid users.
TL;DR
I pretty much reached the same conclusion after thinking about it..
I really don’t know what to use the keys for now, there’s sort of a glaring security issue which seems to render all permissions null, unless you’re okay with reading the permissions as ‘Are you sure you want all your transaction history be available to not just the third party application of your choice but also X amount of mooks that happened to come across your key?’.
(edited by Slyfer.6478)