Search
Lori MacVittie - Two Different Socks
You are here: DevCentral > Weblogs

posted on Thursday, June 05, 2008 7:44 AM

Someone's been playing with the MySpace APIs and found a way to exploit some deprecated [according to MySpace] services through which "private" photos suddenly became public.

Jeremiah Grossman, chief technology officer at White Hat Security, a Web application security company, attributed it to "insufficient authorization," which he said are common on all types of Web sites, not just social-networking sites.

Jeremiah's explanation is evident if you walk through the details of the exploit. You must authenticate to MySpace by logging in - it's the authorization to view the private photos that was completely broken.

MySpace is claiming that the APIs used to obtain the private photos without proper authorization were deprecated, meaning they were being "phased" out.

Deprecation is to developers what quiescing is to database administrators and bleeding-off is to TCP-focused products. Deprecation can take years, as anyone familiar with the Java language specification can tell you. The problem is that developers know it's going to take years for deprecated APIs to be removed, despite the many warnings in source code and documentation claiming "the method may be removed at any moment without warning!" because in their experience, "at any moment" never seems to happen.

The question is why those methods were deprecated in the first place. Were they lacking authorization functionality? Apparently so, if a non-authorized user was able to use that API to obtain data without the proper authorization. And if they were deprecated because they were lacking authorization functionality, or simply didn't work as they should in terms of authorization and security, why were they merely deprecated instead of removed?

Deprecation in a Web-based API a la REST also increases the number of methods, scripts, or applications that have to be maintained and increases the potential security holes through which bad guys might be able to access private data - or worse.

Methods in APIs, particularly RESTful APIs like those offered by providers like Google, Amazon, MySpace, and Facebook that claim to protect private data should never simply be "deprecated" if they might be a potential security risk. While it's certainly painful to developers to have an API "break", it's better to make things break than risk exploitation.

So the next time MySpace or Facebook or [insert social networking site storing private data] decides to change something in its APIs it should take this advice:

Don't deprecate, delete.

Imbibing: Coffee



Feedback

No comments posted yet.

Let Me Know What You Think


Please use the form below if you have any comments, questions, or suggestions.

Title:
 
Name:
 
Email: (so we can show your gravatar)
Website:
Comment: Allowed tags: blockquote, a, strong, em, p, u, strike, super, sub, code
 
Please add 7 and 1 and type the answer here:

Blog Stats

Posts:980
Comments:1685
Stories:0
Trackbacks:583
  

Image Galleries

  

Application Delivery

  

Cloud Computing

  

Random

  

Security

  

Chat Catcher

82,243 Members in 102 Countries and Growing!

Join DevCentral Today!

About DevCentral

DevCentral has been a successful, thriving community for many years. We have always strived to bring you the best technical documentation, discussion forums, blogs, media and much more that we can.

So dive in, get familiar with DevCentral. We hope you like it, we hope it makes your job easier, and lets you get that much more power out of the community. To learn more, make sure to check out the Getting Started section. And if you have any problems, or think something could be easier to use, drop us a line to let us know.

Got It !

We've received your comment and transmitted it directly to DevCentral HQ.

Thanks for taking time to let us know what's on your mind. At DevCentral | Community Matters!

Get In Touch With Us

Have questions, suggestions or just want to get something off your chest?

Use our handy form below to Direct Connect with DevCentral Mission Control.

Send Us Feedback       or