Even if you use HTTPS, aren't you vulnerable to lazy devs who put the password in the URL?
If I use https://username:password@example.com/, doesn't that URL show up in server logs all over the internet?
If I use https://username:password@example.com/, doesn't that URL show up in server logs all over the internet?
I didn't think this was something I had to point out about API authentication, but apparently it is.
Obviously, you're still using a password if you use HTTP Basic Auth.
This is one of many benefits of using multiple (revokable) API Keys.
% curl --trace-ascii /dev/stdout http://jimktrains:password@news.ycombinator.com
== Info: About to connect() to news.ycombinator.com port 80 (#0)
== Info: Trying 184.172.10.74... == Info: connected
== Info: Server auth using Basic with user 'jimktrains'
=> Send header, 223 bytes (0xdf)
0000: GET / HTTP/1.1
0010: Authorization: Basic amlta3RyYWluczpwYXNzd29yZA==
.......
Some UAs however, do just drop it. Like IE (http://support.microsoft.com/kb/834489)http://stackoverflow.com/questions/499591/are-https-urls-enc...
The username and password are sent in the "Authorization" HTTP header, which will be encrypted.