Exploiting the Google App Ecosystem
A number of readers have noted that XMLHttpRequest can only communicate back to the same host that served up a page. This is true. We've all played around with XMLHttpRequest to see if we could make it break. Barring browser bugs, even with iframe and document.domain hacks there isn't much you can do. You can use the super twin powers of Flash to do cross domain scripting in some cases, but even that has its limitations. So we're safe, right?
As I pointed out last week, sites that allow for the persistence of executable artifacts -- Javascript scripts and Flash files -- can provide a leading wedge for AJAX worms and viruses. Many of these same sites have various forms of messaging, such as email. If you can push the buttons on these apps, you don't have to make cross domain XHR calls at all. So, is an application like Yahoo or Google mail "scriptable" enough to allow this sort of subversion?
I know that reading through code like this
may make you feel confident that no one could decipher the inner workings of Gmail, but remember the old cracker war cry: "Security through obscurity is no security at all." What man has compiled, man will also decompile -- the Google Web Toolkit will give up its secrets.
With this in mind, I would be much more at ease if all of the various google applications I use -- maps.google.com, spreadsheets.google.com, mail.google.com, and the various apps under www.google.com -- didn't all have single sign-on and the same google.com domain. It makes for a better experience, to be sure, but I'm pretty certain I don't want someone mailing my spreadsheets to a compromised mailbox.
In the olden days, a popup browser window that started behaving strangely was a dead giveaway that foul play was involved. These days there is no window or status bar message and email may be going out in your name that you don't even know about.
Leave a comment
About Pathfinder
Follow the Blog
-
Get a monthly update on best practices for delivering successful software.
Subscribe via email
Subscribe via RSS
Categories
Topics
Archives
- July 2009
- June 2009
- May 2009
- April 2009
- March 2009
- February 2009
- January 2009
- December 2008
- November 2008
- October 2008
- September 2008
- August 2008
- July 2008
- June 2008
- May 2008
- April 2008
- March 2008
- February 2008
- January 2008
- December 2007
- November 2007
- October 2007
- September 2007
- August 2007
- July 2007
- June 2007
- May 2007
- April 2007
- March 2007
- February 2007
- January 2007
- December 2006
- November 2006
- October 2006
- September 2006
- August 2006
- July 2006
- June 2006
- May 2006
- April 2006
- March 2006
Blogroll
Recent
- Elements of Testing Style
- Aesthetics and Web Design
- Asterisk-Java Testing with Groovy
- 3 Misuses of Code Comments
- Fluently NHibernate
- Digging a Hole and Covering it with Leaves — The Software Development Version
- The Importance of User Experience - Do You Understand It in Your Bones?
- Writing Your Own Protocol With NSURLProtocol
- What’s In Your Dock: iPhone edition
- Feature Fatigue
