<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
> <channel><title>beer planet &#187; internet explorer</title> <atom:link href="http://beerpla.net/tag/internet-explorer/feed/" rel="self" type="application/rss+xml" /><link>http://beerpla.net</link> <description>where things have nothing to do with beer - tutorials, tips, how-tos, thoughts, hacks, and other techy nonsense</description> <lastBuildDate>Thu, 17 May 2012 22:50:53 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.2</generator> <atom:link rel='hub' href='http://beerpla.net/?pushpress=hub'/> <item><title>How To View A Specific SVN Revision In Your Browser</title><link>http://beerpla.net/2010/02/20/how-to-view-a-specific-svn-revision-in-your-browser/</link> <comments>http://beerpla.net/2010/02/20/how-to-view-a-specific-svn-revision-in-your-browser/#comments</comments> <pubDate>Sun, 21 Feb 2010 06:04:17 +0000</pubDate> <dc:creator>Artem Russakovskii</dc:creator> <category><![CDATA[SVN]]></category> <category><![CDATA[Tips]]></category> <category><![CDATA[bc]]></category> <category><![CDATA[browser]]></category> <category><![CDATA[chrome]]></category> <category><![CDATA[directory]]></category> <category><![CDATA[file]]></category> <category><![CDATA[Firefox]]></category> <category><![CDATA[internet explorer]]></category> <category><![CDATA[revision]]></category> <category><![CDATA[specific]]></category> <category><![CDATA[subversion]]></category> <category><![CDATA[trunk]]></category> <category><![CDATA[update]]></category> <category><![CDATA[view]]></category> <category><![CDATA[Wordpress]]></category> <guid
isPermaLink="false">http://beerpla.net/2010/02/20/how-to-view-a-specific-svn-revision-in-your-browser/</guid> <description><![CDATA[<p><img
style="margin: 0px 10px 10px 0px; display: inline" title="image" alt="image" align="left" src="http://beerpla.net/wp-content/uploads/2010/04/image.png" width="150" height="150" /> This is a quick recipe that I found pretty interesting and relatively unknown.</p><p>Everyone who uses SVN knows that most repositories are set up to allow viewing of their contents via a web browser. For example, here&#039;s the trunk of WP Plugins SVN: <a
title="http://plugins.svn.wordpress.org/" href="http://plugins.svn.wordpress.org/" rel="nofollow">http://plugins.svn.wordpress.org/</a> and here is the current trunk version of a specific file, let&#039;s say <a
title="http://plugins.svn.wordpress.org/stats/trunk/readme.txt" href="http://plugins.svn.wordpress.org/stats/trunk/readme.txt" rel="nofollow">http://plugins.svn.wordpress.org/stats/trunk/readme.txt</a>.</p><h2>The Problem</h2><p>However, what if you wanted to view a <strong><em>specific revision</em></strong> of a file or directory <strong><em>in your browser</em></strong>?</p><p>Let&#039;s say I wanted revision 100,000 of <a
href="http://plugins.svn.wordpress.org/stats/trunk/readme.txt" rel="nofollow">http://plugins.svn.wordpress.org/stats/trunk/readme.txt</a></p><p>Normally, on a command line, you&#039;d do something like</p><div
class="wp_syntax"><div
class="code"><pre>svn co http://plugins.svn.wordpress.org/stats/trunk/readme.txt stats
cd stats;
svn up -r100000 readme.txt</pre></div></div><p>or simply</p><div
class="wp_syntax"><div
class="code"><pre>svn export -r100000 http://plugins.svn.wordpress.org/stats/trunk/readme.txt</pre></div></div><p>However, how would you do this in ...<div
class=clear></div> <a
href="http://beerpla.net/2010/02/20/how-to-view-a-specific-svn-revision-in-your-browser/" class="read_more"><div
class=excerpt-end>Read the rest of this article &#187;</div></a></p>]]></description> <content:encoded><![CDATA[<p><img
style="margin: 0px 10px 10px 0px; display: inline" title="image" alt="image" align="left" src="http://beerpla.net/wp-content/uploads/2010/04/image.png" width="150" height="150" /> This is a quick recipe that I found pretty interesting and relatively unknown.</p><p>Everyone who uses SVN knows that most repositories are set up to allow viewing of their contents via a web browser. For example, here&#039;s the trunk of WP Plugins SVN: <a
title="http://plugins.svn.wordpress.org/" href="http://plugins.svn.wordpress.org/" rel="nofollow">http://plugins.svn.wordpress.org/</a> and here is the current trunk version of a specific file, let&#039;s say <a
title="http://plugins.svn.wordpress.org/stats/trunk/readme.txt" href="http://plugins.svn.wordpress.org/stats/trunk/readme.txt" rel="nofollow">http://plugins.svn.wordpress.org/stats/trunk/readme.txt</a>.</p><h2>The Problem</h2><p>However, what if you wanted to view a <strong><em>specific revision</em></strong> of a file or directory <strong><em>in your browser</em></strong>?</p><p>Let&#039;s say I wanted revision 100,000 of <a
href="http://plugins.svn.wordpress.org/stats/trunk/readme.txt" rel="nofollow">http://plugins.svn.wordpress.org/stats/trunk/readme.txt</a></p><p>Normally, on a command line, you&#039;d do something like</p><div
class="wp_syntax"><div
class="code"><pre>svn co http://plugins.svn.wordpress.org/stats/trunk/readme.txt stats
cd stats;
svn up -r100000 readme.txt</pre></div></div><p>or simply</p><div
class="wp_syntax"><div
class="code"><pre>svn export -r100000 http://plugins.svn.wordpress.org/stats/trunk/readme.txt</pre></div></div><p>However, how would you do this in your browser? Trying something like ?r=100000 or ?revision=100000 parameters doesn&#039;t work.</p><h2>The Solution</h2><p>Here is the syntax to get a specific revision of a file or directory:</p><ol><li>Take the root of the repository (in our case, <a
href="http://plugins.svn.wordpress.org" rel="nofollow">http://plugins.svn.wordpress.org</a>)</li><li>Append this string <strong><em>!svn/bc/REVISION_NUMBER</em></strong> right after the repository root and before the directory or file path.</li></ol><p>Going back to our example:</p><ul><li><a
href="http://plugins.svn.wordpress.org/!svn/bc/100000/stats/" rel="nofollow">http://plugins.svn.wordpress.org/!svn/bc/100000/stats/</a><p>shows the stats directory exactly as it was at revision 100,000 and</p></li><li><a
title="http://plugins.svn.wordpress.org/!svn/bc/100000/stats/trunk/readme.txt" href="http://plugins.svn.wordpress.org/!svn/bc/100000/stats/trunk/readme.txt" rel="nofollow">http://plugins.svn.wordpress.org/!svn/bc/100000/stats/trunk/readme.txt</a><p>shows our readme.txt at 100,000.</p></li></ul><p>And that&#039;s how you do it, folks. Happy revisioning!</p><p><strong>Update</strong>: this post is now sponsored by <a
href="http://www.wirefly.com/learn/">Wirefly Learn</a> where you can find cell phone news and reviews, as well as comparisons and videos.</p><div
class="shr-bookmarks shr-bookmarks-expand"><ul
class="socials"><li
class="shr-twitter"> <a
href="http://www.shareaholic.com/api/share/?title=How+To+View+A+Specific+SVN+Revision+In+Your+Browser&amp;link=http://beerpla.net/2010/02/20/how-to-view-a-specific-svn-revision-in-your-browser/&amp;notes=%20This%20is%20a%20quick%20recipe%20that%20I%20found%20pretty%20interesting%20and%20relatively%20unknown.%20%20Everyone%20who%20uses%20SVN%20knows%20that%20most%20repositories%20are%20set%20up%20to%20allow%20viewing%20of%20their%20contents%20via%20a%20web%20browser.%20For%20example%2C%20here%27s%20the%20trunk%20of%20WP%20Plugins%20SVN%3A%20http%3A%2F%2Fplugins.svn.wordpress.org%2F%20and%20here%20is%20the%20curr&amp;short_link=http://bit.ly/cFiWmr&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=%24%7Btitle%7D+-+%24%7Bshort_link%7D&amp;service=7&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a></li><li
class="shr-facebook"> <a
href="http://www.shareaholic.com/api/share/?title=How+To+View+A+Specific+SVN+Revision+In+Your+Browser&amp;link=http://beerpla.net/2010/02/20/how-to-view-a-specific-svn-revision-in-your-browser/&amp;notes=%20This%20is%20a%20quick%20recipe%20that%20I%20found%20pretty%20interesting%20and%20relatively%20unknown.%20%20Everyone%20who%20uses%20SVN%20knows%20that%20most%20repositories%20are%20set%20up%20to%20allow%20viewing%20of%20their%20contents%20via%20a%20web%20browser.%20For%20example%2C%20here%27s%20the%20trunk%20of%20WP%20Plugins%20SVN%3A%20http%3A%2F%2Fplugins.svn.wordpress.org%2F%20and%20here%20is%20the%20curr&amp;short_link=http://bit.ly/cFiWmr&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=5&amp;tags=&amp;ctype=" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a></li><li
class="shr-googlebuzz"> <a
href="http://www.shareaholic.com/api/share/?title=How+To+View+A+Specific+SVN+Revision+In+Your+Browser&amp;link=http://beerpla.net/2010/02/20/how-to-view-a-specific-svn-revision-in-your-browser/&amp;notes=%20This%20is%20a%20quick%20recipe%20that%20I%20found%20pretty%20interesting%20and%20relatively%20unknown.%20%20Everyone%20who%20uses%20SVN%20knows%20that%20most%20repositories%20are%20set%20up%20to%20allow%20viewing%20of%20their%20contents%20via%20a%20web%20browser.%20For%20example%2C%20here%27s%20the%20trunk%20of%20WP%20Plugins%20SVN%3A%20http%3A%2F%2Fplugins.svn.wordpress.org%2F%20and%20here%20is%20the%20curr&amp;short_link=http://bit.ly/cFiWmr&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=257&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a></li><li
class="shr-reddit"> <a
href="http://www.shareaholic.com/api/share/?title=How+To+View+A+Specific+SVN+Revision+In+Your+Browser&amp;link=http://beerpla.net/2010/02/20/how-to-view-a-specific-svn-revision-in-your-browser/&amp;notes=%20This%20is%20a%20quick%20recipe%20that%20I%20found%20pretty%20interesting%20and%20relatively%20unknown.%20%20Everyone%20who%20uses%20SVN%20knows%20that%20most%20repositories%20are%20set%20up%20to%20allow%20viewing%20of%20their%20contents%20via%20a%20web%20browser.%20For%20example%2C%20here%27s%20the%20trunk%20of%20WP%20Plugins%20SVN%3A%20http%3A%2F%2Fplugins.svn.wordpress.org%2F%20and%20here%20is%20the%20curr&amp;short_link=http://bit.ly/cFiWmr&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=40&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a></li><li
class="shr-hackernews"> <a
href="http://www.shareaholic.com/api/share/?title=How+To+View+A+Specific+SVN+Revision+In+Your+Browser&amp;link=http://beerpla.net/2010/02/20/how-to-view-a-specific-svn-revision-in-your-browser/&amp;notes=%20This%20is%20a%20quick%20recipe%20that%20I%20found%20pretty%20interesting%20and%20relatively%20unknown.%20%20Everyone%20who%20uses%20SVN%20knows%20that%20most%20repositories%20are%20set%20up%20to%20allow%20viewing%20of%20their%20contents%20via%20a%20web%20browser.%20For%20example%2C%20here%27s%20the%20trunk%20of%20WP%20Plugins%20SVN%3A%20http%3A%2F%2Fplugins.svn.wordpress.org%2F%20and%20here%20is%20the%20curr&amp;short_link=http://bit.ly/cFiWmr&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=202&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Submit this to Hacker News">Submit this to Hacker News</a></li><li
class="shr-delicious"> <a
href="http://www.shareaholic.com/api/share/?title=How+To+View+A+Specific+SVN+Revision+In+Your+Browser&amp;link=http://beerpla.net/2010/02/20/how-to-view-a-specific-svn-revision-in-your-browser/&amp;notes=%20This%20is%20a%20quick%20recipe%20that%20I%20found%20pretty%20interesting%20and%20relatively%20unknown.%20%20Everyone%20who%20uses%20SVN%20knows%20that%20most%20repositories%20are%20set%20up%20to%20allow%20viewing%20of%20their%20contents%20via%20a%20web%20browser.%20For%20example%2C%20here%27s%20the%20trunk%20of%20WP%20Plugins%20SVN%3A%20http%3A%2F%2Fplugins.svn.wordpress.org%2F%20and%20here%20is%20the%20curr&amp;short_link=http://bit.ly/cFiWmr&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=2&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a></li><li
class="shr-stumbleupon"> <a
href="http://www.shareaholic.com/api/share/?title=How+To+View+A+Specific+SVN+Revision+In+Your+Browser&amp;link=http://beerpla.net/2010/02/20/how-to-view-a-specific-svn-revision-in-your-browser/&amp;notes=%20This%20is%20a%20quick%20recipe%20that%20I%20found%20pretty%20interesting%20and%20relatively%20unknown.%20%20Everyone%20who%20uses%20SVN%20knows%20that%20most%20repositories%20are%20set%20up%20to%20allow%20viewing%20of%20their%20contents%20via%20a%20web%20browser.%20For%20example%2C%20here%27s%20the%20trunk%20of%20WP%20Plugins%20SVN%3A%20http%3A%2F%2Fplugins.svn.wordpress.org%2F%20and%20here%20is%20the%20curr&amp;short_link=http://bit.ly/cFiWmr&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=38&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a></li><li
class="shr-mail"> <a
href="http://www.shareaholic.com/api/share/?title=How%20To%20View%20A%20Specific%20SVN%20Revision%20In%20Your%20Browser&amp;link=http://beerpla.net/2010/02/20/how-to-view-a-specific-svn-revision-in-your-browser/&amp;notes=%20This%20is%20a%20quick%20recipe%20that%20I%20found%20pretty%20interesting%20and%20relatively%20unknown.%20%20Everyone%20who%20uses%20SVN%20knows%20that%20most%20repositories%20are%20set%20up%20to%20allow%20viewing%20of%20their%20contents%20via%20a%20web%20browser.%20For%20example%2C%20here%27s%20the%20trunk%20of%20WP%20Plugins%20SVN%3A%20http%3A%2F%2Fplugins.svn.wordpress.org%2F%20and%20here%20is%20the%20curr&amp;short_link=http://bit.ly/cFiWmr&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=201&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Email this to a friend?">Email this to a friend?</a></li></ul><div
style="clear: both;"></div></div> Similar Posts:<ul><li><a
href="http://beerpla.net/2009/06/20/how-to-properly-set-svn-svnexternals-property-in-svn-command-line/" rel="bookmark" title="June 20, 2009">How To Properly Set SVN svn:externals Property In SVN Command Line</a></li><li><a
href="http://beerpla.net/2008/06/16/how-to-svn-update-all-your-wordpress-plugins-in-one-go/" rel="bookmark" title="June 16, 2008">How To SVN Update All Your WordPress Plugins In One Go</a></li><li><a
href="http://beerpla.net/2008/07/23/how-to-check-if-the-local-svn-revision-is-up-to-date/" rel="bookmark" title="July 23, 2008">How To Check If The Local SVN Revision Is Up-To-Date</a></li><li><a
href="http://beerpla.net/2006/07/15/converting-from-cvs-to-svn-developers-notes-and-why-svn-is-better/" rel="bookmark" title="July 15, 2006">Converting from CVS to SVN: Developer&#039;s Notes And Why SVN Is Better</a></li><li><a
href="http://beerpla.net/2008/03/29/beer-planet-upgraded-to-wordpress-25/" rel="bookmark" title="March 29, 2008">Beer Planet Upgraded To WordPress 2.5</a></li></ul><p><a
class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fbeerpla.net%2F2010%2F02%2F20%2Fhow-to-view-a-specific-svn-revision-in-your-browser%2F&amp;title=How%20To%20View%20A%20Specific%20SVN%20Revision%20In%20Your%20Browser" id="wpa2a_2"><img
src="http://beerpla.net/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded> <wfw:commentRss>http://beerpla.net/2010/02/20/how-to-view-a-specific-svn-revision-in-your-browser/feed/</wfw:commentRss> <slash:comments>4</slash:comments> </item> <item><title>[Web Dev] Browser Breakdown Stats+Charts From Plaxo.com For December 2009 And Thoughts</title><link>http://beerpla.net/2010/01/11/web-dev-browser-breakdown-statscharts-from-plaxo-com-for-december-2009-and-thoughts/</link> <comments>http://beerpla.net/2010/01/11/web-dev-browser-breakdown-statscharts-from-plaxo-com-for-december-2009-and-thoughts/#comments</comments> <pubDate>Mon, 11 Jan 2010 18:00:00 +0000</pubDate> <dc:creator>Artem Russakovskii</dc:creator> <category><![CDATA[Firefox]]></category> <category><![CDATA[Programming]]></category> <category><![CDATA[Stuff]]></category> <category><![CDATA[2009]]></category> <category><![CDATA[breakdown]]></category> <category><![CDATA[browser]]></category> <category><![CDATA[chart]]></category> <category><![CDATA[chrome]]></category> <category><![CDATA[december]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[ie]]></category> <category><![CDATA[internet explorer]]></category> <category><![CDATA[mozilla]]></category> <category><![CDATA[opera]]></category> <category><![CDATA[opera mini]]></category> <category><![CDATA[piechart]]></category> <category><![CDATA[plaxo]]></category> <category><![CDATA[statistics]]></category> <category><![CDATA[stats]]></category> <guid
isPermaLink="false">http://beerpla.net/2010/01/11/web-dev-browser-breakdown-statscharts-from-plaxo-com-for-december-2009-and-thoughts/</guid> <description><![CDATA[<p>It&#039;s always important to know for developers what browsers they are developing for, who dominates the market, and what the current trends are.</p><p>I have gotten my hands on the Plaxo.com visitors&#039; browser stats for December of 2009.</p><p>This information is valuable because Plaxo has a relatively general demographics, as it&#039;s not a site only geeks or only moms visit, and the statistics tends to not be skewed. Therefore, as you can see, Firefox doesn&#039;t occupy the same share as you might see on a techy site (on this site, more than 50% of users visit in Firefox).</p><p>Also, since Plaxo has a couple million monthly visitors and therefore a couple million data points, statistically speaking these numbers are relatively ...<div
class=clear></div> <a
href="http://beerpla.net/2010/01/11/web-dev-browser-breakdown-statscharts-from-plaxo-com-for-december-2009-and-thoughts/" class="read_more"><div
class=excerpt-end>Read the rest of this article &#187;</div></a></p>]]></description> <content:encoded><![CDATA[</p><p>It&#039;s always important to know for developers what browsers they are developing for, who dominates the market, and what the current trends are.</p><p>I have gotten my hands on the Plaxo.com visitors&#039; browser stats for December of 2009.</p><p>This information is valuable because Plaxo has a relatively general demographics, as it&#039;s not a site only geeks or only moms visit, and the statistics tends to not be skewed. Therefore, as you can see, Firefox doesn&#039;t occupy the same share as you might see on a techy site (on this site, more than 50% of users visit in Firefox).</p><p>Also, since Plaxo has a couple million monthly visitors and therefore a couple million data points, statistically speaking these numbers are relatively accurate.</p><p>Without further ado, here is the data, with some spiffy charts.</p><h2>Overall Browser Breakdown For December 2009</h2><div
align="center"><table
border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td
width="170">Internet Explorer</td><td
width="171">64.00%</td></tr><tr><td>Firefox</td><td>23.60%</td></tr><tr><td>Safari</td><td>6.20%</td></tr><tr><td>Chrome</td><td>4.60%</td></tr><tr><td>Opera</td><td>0.60%</td></tr><tr><td>Mozilla</td><td>0.30%</td></tr><tr><td>Mozilla Compatible Agent</td><td>0.10%</td></tr><tr><td>Opera Mini</td><td>0.10%</td></tr><tr><td>BlackBerry9530</td><td>0.10%</td></tr><tr><td>BlackBerry9000</td><td>0.10%</td></tr></tbody></table></div><p><img
style="display: block; float: none; margin-left: auto; margin-right: auto" title="Overall Browser Breakdown For December 2009" alt="Overall Browser Breakdown For December 2009" src="http://beerpla.net/wp-content/uploads/d20534bd5016_10C3/image.png" width="705" height="486" /></p><p>&#160;</p><h2>Internet Explorer Version Breakdown For December 2009</h2><p>Some numbers here have a value of 0.00% which means they&#039;ve been rounded down and have really low numbers. The order is still correct though.</p><div
align="center"><table
border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td
width="170">IE Version</td><td
width="171">%</td></tr><tr><td>7</td><td>65.90%</td></tr><tr><td>6</td><td>17.20%</td></tr><tr><td>8</td><td>16.90%</td></tr><tr><td>5.5</td><td>0.00%</td></tr><tr><td>999.1</td><td>0.00%</td></tr><tr><td>5.01</td><td>0.00%</td></tr><tr><td>5</td><td>0.00%</td></tr><tr><td>4.01</td><td>0.00%</td></tr><tr><td>6.1</td><td>0.00%</td></tr><tr><td>6.5</td><td>0.00%</td></tr></tbody></table></div><p><img
style="display: block; float: none; margin-left: auto; margin-right: auto" title="Internet Explorer Version Breakdown For December 2009" alt="Internet Explorer Version Breakdown For December 2009" src="http://beerpla.net/wp-content/uploads/d20534bd5016_10C3/image_3.png" width="705" height="486" /></p><div>&#160;</div><h2>Firefox Version Breakdown For December 2009</h2><div
align="center"><table
border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td
width="170">3.5.5</td><td
width="171">37.30%</td></tr><tr><td>3.5.6</td><td>27.00%</td></tr><tr><td>3.0.15</td><td>12.80%</td></tr><tr><td>3.0.16</td><td>7.70%</td></tr><tr><td>3.5.3</td><td>1.80%</td></tr><tr><td>3.5.2</td><td>1.30%</td></tr><tr><td>2.0.0.20</td><td>1.50%</td></tr><tr><td>3.6</td><td>0.80%</td></tr><tr><td>3.0.13</td><td>0.60%</td></tr><tr><td>3.0.10</td><td>0.80%</td></tr></tbody></table></div><p><img
style="display: block; float: none; margin-left: auto; margin-right: auto" title="Firefox Version Breakdown For December 2009" alt="Firefox Version Breakdown For December 2009" src="http://beerpla.net/wp-content/uploads/d20534bd5016_10C3/image_4.png" width="705" height="486" /></p><p>&#160;</p><h2>Thoughts</h2><ul><li>Internet Explorer is doing remarkably well &#8211; it is still most definitely the primary browser, so testing it should be planned accordingly.</li><li>Internet Explorer 7 is by far the most popular version with 65.9% of all IE versions, followed by IE6 at 17.2% (wtf??), and only then IE8 at 16.9%. This definitely came as a surprise to me &#8211; both in how popular IE7 still is and how pathetic Microsoft&#039;s efforts to upgrade Windows users up from IE6 have been.</li><li>Safari and Chrome are neck and neck at 6.20% and 4.6% respectively, with Chrome gaining rapidly.</li><li>Opera is doing undeservedly badly &#8211; 0.6%. That makes me sad.</li><li>IE 999.1? Interesting. I wonder if it&#039;s some sort of an uber hacked version.</li><li>And, instead of conclusion: damn you, IE6! Why can&#039;t you die already?</li></ul><div
class="shr-bookmarks shr-bookmarks-expand"><ul
class="socials"><li
class="shr-twitter"> <a
href="http://www.shareaholic.com/api/share/?title=%5BWeb+Dev%5D+Browser+Breakdown+Stats%2BCharts+From+Plaxo.com+For+December+2009+And+Thoughts&amp;link=http://beerpla.net/2010/01/11/web-dev-browser-breakdown-statscharts-from-plaxo-com-for-december-2009-and-thoughts/&amp;notes=%20%20It%27s%20always%20important%20to%20know%20for%20developers%20what%20browsers%20they%20are%20developing%20for%2C%20who%20dominates%20the%20market%2C%20and%20what%20the%20current%20trends%20are.%20%20I%20have%20gotten%20my%20hands%20on%20the%20Plaxo.com%20visitors%27%20browser%20stats%20for%20December%20of%202009.%20%20This%20information%20is%20valuable%20because%20Plaxo%20has%20a%20relatively%20general&amp;short_link=http://bit.ly/btJtGJ&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=%24%7Btitle%7D+-+%24%7Bshort_link%7D&amp;service=7&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a></li><li
class="shr-facebook"> <a
href="http://www.shareaholic.com/api/share/?title=%5BWeb+Dev%5D+Browser+Breakdown+Stats%2BCharts+From+Plaxo.com+For+December+2009+And+Thoughts&amp;link=http://beerpla.net/2010/01/11/web-dev-browser-breakdown-statscharts-from-plaxo-com-for-december-2009-and-thoughts/&amp;notes=%20%20It%27s%20always%20important%20to%20know%20for%20developers%20what%20browsers%20they%20are%20developing%20for%2C%20who%20dominates%20the%20market%2C%20and%20what%20the%20current%20trends%20are.%20%20I%20have%20gotten%20my%20hands%20on%20the%20Plaxo.com%20visitors%27%20browser%20stats%20for%20December%20of%202009.%20%20This%20information%20is%20valuable%20because%20Plaxo%20has%20a%20relatively%20general&amp;short_link=http://bit.ly/btJtGJ&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=5&amp;tags=&amp;ctype=" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a></li><li
class="shr-googlebuzz"> <a
href="http://www.shareaholic.com/api/share/?title=%5BWeb+Dev%5D+Browser+Breakdown+Stats%2BCharts+From+Plaxo.com+For+December+2009+And+Thoughts&amp;link=http://beerpla.net/2010/01/11/web-dev-browser-breakdown-statscharts-from-plaxo-com-for-december-2009-and-thoughts/&amp;notes=%20%20It%27s%20always%20important%20to%20know%20for%20developers%20what%20browsers%20they%20are%20developing%20for%2C%20who%20dominates%20the%20market%2C%20and%20what%20the%20current%20trends%20are.%20%20I%20have%20gotten%20my%20hands%20on%20the%20Plaxo.com%20visitors%27%20browser%20stats%20for%20December%20of%202009.%20%20This%20information%20is%20valuable%20because%20Plaxo%20has%20a%20relatively%20general&amp;short_link=http://bit.ly/btJtGJ&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=257&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a></li><li
class="shr-reddit"> <a
href="http://www.shareaholic.com/api/share/?title=%5BWeb+Dev%5D+Browser+Breakdown+Stats%2BCharts+From+Plaxo.com+For+December+2009+And+Thoughts&amp;link=http://beerpla.net/2010/01/11/web-dev-browser-breakdown-statscharts-from-plaxo-com-for-december-2009-and-thoughts/&amp;notes=%20%20It%27s%20always%20important%20to%20know%20for%20developers%20what%20browsers%20they%20are%20developing%20for%2C%20who%20dominates%20the%20market%2C%20and%20what%20the%20current%20trends%20are.%20%20I%20have%20gotten%20my%20hands%20on%20the%20Plaxo.com%20visitors%27%20browser%20stats%20for%20December%20of%202009.%20%20This%20information%20is%20valuable%20because%20Plaxo%20has%20a%20relatively%20general&amp;short_link=http://bit.ly/btJtGJ&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=40&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a></li><li
class="shr-hackernews"> <a
href="http://www.shareaholic.com/api/share/?title=%5BWeb+Dev%5D+Browser+Breakdown+Stats%2BCharts+From+Plaxo.com+For+December+2009+And+Thoughts&amp;link=http://beerpla.net/2010/01/11/web-dev-browser-breakdown-statscharts-from-plaxo-com-for-december-2009-and-thoughts/&amp;notes=%20%20It%27s%20always%20important%20to%20know%20for%20developers%20what%20browsers%20they%20are%20developing%20for%2C%20who%20dominates%20the%20market%2C%20and%20what%20the%20current%20trends%20are.%20%20I%20have%20gotten%20my%20hands%20on%20the%20Plaxo.com%20visitors%27%20browser%20stats%20for%20December%20of%202009.%20%20This%20information%20is%20valuable%20because%20Plaxo%20has%20a%20relatively%20general&amp;short_link=http://bit.ly/btJtGJ&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=202&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Submit this to Hacker News">Submit this to Hacker News</a></li><li
class="shr-delicious"> <a
href="http://www.shareaholic.com/api/share/?title=%5BWeb+Dev%5D+Browser+Breakdown+Stats%2BCharts+From+Plaxo.com+For+December+2009+And+Thoughts&amp;link=http://beerpla.net/2010/01/11/web-dev-browser-breakdown-statscharts-from-plaxo-com-for-december-2009-and-thoughts/&amp;notes=%20%20It%27s%20always%20important%20to%20know%20for%20developers%20what%20browsers%20they%20are%20developing%20for%2C%20who%20dominates%20the%20market%2C%20and%20what%20the%20current%20trends%20are.%20%20I%20have%20gotten%20my%20hands%20on%20the%20Plaxo.com%20visitors%27%20browser%20stats%20for%20December%20of%202009.%20%20This%20information%20is%20valuable%20because%20Plaxo%20has%20a%20relatively%20general&amp;short_link=http://bit.ly/btJtGJ&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=2&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a></li><li
class="shr-stumbleupon"> <a
href="http://www.shareaholic.com/api/share/?title=%5BWeb+Dev%5D+Browser+Breakdown+Stats%2BCharts+From+Plaxo.com+For+December+2009+And+Thoughts&amp;link=http://beerpla.net/2010/01/11/web-dev-browser-breakdown-statscharts-from-plaxo-com-for-december-2009-and-thoughts/&amp;notes=%20%20It%27s%20always%20important%20to%20know%20for%20developers%20what%20browsers%20they%20are%20developing%20for%2C%20who%20dominates%20the%20market%2C%20and%20what%20the%20current%20trends%20are.%20%20I%20have%20gotten%20my%20hands%20on%20the%20Plaxo.com%20visitors%27%20browser%20stats%20for%20December%20of%202009.%20%20This%20information%20is%20valuable%20because%20Plaxo%20has%20a%20relatively%20general&amp;short_link=http://bit.ly/btJtGJ&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=38&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a></li><li
class="shr-mail"> <a
href="http://www.shareaholic.com/api/share/?title=%5BWeb%20Dev%5D%20Browser%20Breakdown%20Stats%2BCharts%20From%20Plaxo.com%20For%20December%202009%20And%20Thoughts&amp;link=http://beerpla.net/2010/01/11/web-dev-browser-breakdown-statscharts-from-plaxo-com-for-december-2009-and-thoughts/&amp;notes=%20%20It%27s%20always%20important%20to%20know%20for%20developers%20what%20browsers%20they%20are%20developing%20for%2C%20who%20dominates%20the%20market%2C%20and%20what%20the%20current%20trends%20are.%20%20I%20have%20gotten%20my%20hands%20on%20the%20Plaxo.com%20visitors%27%20browser%20stats%20for%20December%20of%202009.%20%20This%20information%20is%20valuable%20because%20Plaxo%20has%20a%20relatively%20general&amp;short_link=http://bit.ly/btJtGJ&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=201&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Email this to a friend?">Email this to a friend?</a></li></ul><div
style="clear: both;"></div></div> Similar Posts:<ul><li><a
href="http://beerpla.net/2009/05/13/firefox-being-slow-especially-switching-tabs-high-cpu-load-memory-problems-are-you-using-firecookie-for-firebug/" rel="bookmark" title="May 13, 2009">Firefox Being Slow, Especially Switching Tabs, High CPU Load, Memory Problems? Are You Using Firecookie For Firebug?</a></li><li><a
href="http://beerpla.net/2011/06/13/goodbye-outlook-i-dont-need-you-anymore-gmail-now-lets-you-paste-images-directly-from-clipboard/" rel="bookmark" title="June 13, 2011">[Updated x3] Goodbye Outlook, I Don&#039;t Need You Anymore &#8211; Gmail Now Lets You Paste Images Directly From Clipboard</a></li><li><a
href="http://beerpla.net/2009/11/21/meet-firefox-for-mobile-video-feature-highlights-more-info/" rel="bookmark" title="November 21, 2009">Meet Firefox For Mobile [Video + Feature Highlights + More Info]</a></li><li><a
href="http://beerpla.net/2009/10/29/modern-day-frame-busting-with-x-frame-options-and-this-content-cannot-be-displayed-in-a-frame-warnings/" rel="bookmark" title="October 29, 2009">Modern-Day Frame Busting With X-FRAME-OPTIONS And &quot;This content cannot be displayed in a frame&quot; Warnings</a></li><li><a
href="http://beerpla.net/2006/07/15/converting-from-cvs-to-svn-developers-notes-and-why-svn-is-better/" rel="bookmark" title="July 15, 2006">Converting from CVS to SVN: Developer&#039;s Notes And Why SVN Is Better</a></li></ul><p><a
class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fbeerpla.net%2F2010%2F01%2F11%2Fweb-dev-browser-breakdown-statscharts-from-plaxo-com-for-december-2009-and-thoughts%2F&amp;title=%5BWeb%20Dev%5D%20Browser%20Breakdown%20Stats%2BCharts%20From%20Plaxo.com%20For%20December%202009%20And%20Thoughts" id="wpa2a_4"><img
src="http://beerpla.net/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded> <wfw:commentRss>http://beerpla.net/2010/01/11/web-dev-browser-breakdown-statscharts-from-plaxo-com-for-december-2009-and-thoughts/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>How To Make Firebug&#039;s JavaScript Debugger Break Inside Dynamic JavaScript Using The &#039;debugger&#039; Keyword (IE &amp; Chrome Too)</title><link>http://beerpla.net/2009/12/17/how-to-make-firebugs-javascript-debugger-break-inside-dynamic-javascript-using-the-debugger-keyword-ie-chrome-too/</link> <comments>http://beerpla.net/2009/12/17/how-to-make-firebugs-javascript-debugger-break-inside-dynamic-javascript-using-the-debugger-keyword-ie-chrome-too/#comments</comments> <pubDate>Thu, 17 Dec 2009 19:39:50 +0000</pubDate> <dc:creator>Artem Russakovskii</dc:creator> <category><![CDATA[JavaScript]]></category> <category><![CDATA[Programming]]></category> <category><![CDATA[Tips]]></category> <category><![CDATA[break]]></category> <category><![CDATA[breakpoint]]></category> <category><![CDATA[chrome]]></category> <category><![CDATA[debug]]></category> <category><![CDATA[debugger]]></category> <category><![CDATA[debugger keyword]]></category> <category><![CDATA[dynamic]]></category> <category><![CDATA[firebug]]></category> <category><![CDATA[Firefox]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[ie]]></category> <category><![CDATA[internet explorer]]></category> <category><![CDATA[keyword]]></category> <category><![CDATA[on-demand]]></category> <guid
isPermaLink="false">http://beerpla.net/2009/12/17/how-to-make-firebugs-javascript-debugger-break-inside-dynamic-javascript-using-the-debugger-keyword-ie-chrome-too/</guid> <description><![CDATA[<p><a
href="http://beerpla.net/wp-content/uploads/HowToMakeFirebugsJavaScriptDebuggerBreak_13D41/image.png" class="lightview" rel="gallery['1303']" title="image"><img
style="margin: 0px 10px 10px 0px; display: inline" title="image" alt="image" align="left" src="http://beerpla.net/wp-content/uploads/HowToMakeFirebugsJavaScriptDebuggerBreak_13D41/image_thumb.png" width="150" height="147" /></a> As a backend developer, I don&#039;t get to work with JavaScript much anymore. However, from time to time, a project would come along that uses JavaScript (specifically, AJAX) to load some backend data on the fly. Of course, nothing works 100% right away<strong><font
size="5">*</font></strong>, so I would often have to tweak this JavaScript and massage it until it does what I need.</p><p>Here&#039;s where Firebug comes in with its JavaScript debugger. I&#039;m used to using a debugger in every language I deal with, so using Firebug is a no brainer. Since it supports breakpoints, stopping execution and inspecting local variables and the rest of the scope generally beats alerts and console.logs for me.</p><p>Here&#039;s what a typical breakpoint looks ...<div
class=clear></div> <a
href="http://beerpla.net/2009/12/17/how-to-make-firebugs-javascript-debugger-break-inside-dynamic-javascript-using-the-debugger-keyword-ie-chrome-too/" class="read_more"><div
class=excerpt-end>Read the rest of this article &#187;</div></a></p>]]></description> <content:encoded><![CDATA[<p><a
href="http://beerpla.net/wp-content/uploads/HowToMakeFirebugsJavaScriptDebuggerBreak_13D41/image.png" class="lightview" rel="gallery['1303']" title="image"><img
style="margin: 0px 10px 10px 0px; display: inline" title="image" alt="image" align="left" src="http://beerpla.net/wp-content/uploads/HowToMakeFirebugsJavaScriptDebuggerBreak_13D41/image_thumb.png" width="150" height="147" /></a> As a backend developer, I don&#039;t get to work with JavaScript much anymore. However, from time to time, a project would come along that uses JavaScript (specifically, AJAX) to load some backend data on the fly. Of course, nothing works 100% right away<strong><font
size="5">*</font></strong>, so I would often have to tweak this JavaScript and massage it until it does what I need.</p><p>Here&#039;s where Firebug comes in with its JavaScript debugger. I&#039;m used to using a debugger in every language I deal with, so using Firebug is a no brainer. Since it supports breakpoints, stopping execution and inspecting local variables and the rest of the scope generally beats alerts and console.logs for me.</p><p>Here&#039;s what a typical breakpoint looks like in Firebug:</p><p><a
href="http://beerpla.net/wp-content/uploads/HowToMakeFirebugsJavaScriptDebuggerBreak_13D41/image_3.png" class="lightview" rel="gallery['1303']" title="Firebug JavaScript breakpoint triggered"><img
style="display: block; float: none; margin-left: auto; margin-right: auto" title="Firebug JavaScript breakpoint triggered" alt="Firebug JavaScript breakpoint triggered" src="http://beerpla.net/wp-content/uploads/HowToMakeFirebugsJavaScriptDebuggerBreak_13D41/image_thumb_3.png" width="700" height="173" /></a></p><p>It&#039;s easy to set breakpoints in static scripts &#8211; just open the Scripts tab, select a JavaScript file from the dropdown menu, and click to the left of the wanted line number.</p><p>Then, when the page is reloaded, if your breakpoints are triggered, Firebug will pause script execution and transfer the control to you.</p><p><img
style="display: block; float: none; margin-left: auto; margin-right: auto" title="Setting Firebug JavaScript breakpoint" alt="Setting Firebug JavaScript breakpoint" src="http://beerpla.net/wp-content/uploads/HowToMakeFirebugsJavaScriptDebuggerBreak_13D41/image_4.png" width="593" height="179" /></p><p>In most cases, the method above is the only method of setting breakpoints you will ever need to use.</p><h2>The Problem With Dynamic JavaScript</h2><p>However, what if the JavaScript file where you need to set breakpoints is not static but instead dynamic (generated on the fly). If you set a breakpoint in this case and reload the page, the breakpoint will most likely disappear, especially if the JavaScript url is generated uniquely every time.</p><h2>The Solution</h2><p>If you have access to the source, the solution comes in the form of the</p><div
class="wp_syntax"><div
class="code"><pre>debugger;</pre></div></div><p>keyword. Just add it to your dynamic JavaScript generator or into any JavaScript file you have access to exactly where you want Firebug to break, and voila &#8211; it does.</p><p><img
style="display: block; float: none; margin-left: auto; margin-right: auto" title="JavaScript debugger keyword" alt="JavaScript debugger keyword" src="http://beerpla.net/wp-content/uploads/HowToMakeFirebugsJavaScriptDebuggerBreak_13D41/image_5.png" width="345" height="94" /></p><p>More so, this method also works in Google Chrome and <a
href="http://www.codestore.net/store.nsf/unid/DOMT-5UBUVW" rel="nofollow">IE (if you have Microsoft Script Debugger)</a>. Here is a screenshot of my Chrome Beta 4.0.266.0 triggering:</p><p><img
style="display: block; float: none; margin-left: auto; margin-right: auto" alt="Chrome JavaScript debugger" src="/for_www/chrome-js-debugger.png" /></p><p> I consider this feature relatively unpublished and therefore awesome because:</p><ul><li>it&#039;s hard to search for this specific meaning of the keyword &quot;debugger&quot; when Firebug itself is a debugger and it&#039;s a very popular word</li><li>nobody really reads documentation for Firebug, and even if they do, I haven&#039;t actually seen the debugger keyword mentioned</li><li>I didn&#039;t know about it until recently, even though I&#039;ve been using Firebug for years</li></ul><p>Of course, you need access to the code for this to work, so it&#039;s not going to work if you&#039;re trying to debug someone else&#039;s JavaScript.</p><p>And finally, don&#039;t forget to remove any traces of &#039;debugger&#039; from your code when you go live or your users will rightfully hunt you down.</p><h2>Credits And References:</h2><ul><li>suggested by a co-worker from <a
href="http://www.plaxo.com" rel="nofollow">Plaxo</a> &#8211; Russ. Thanks Russ!</li><li>some more interesting info at <a
href="http://stackoverflow.com/questions/858779/making-firebug-break-inside-dynamically-loaded-javascript" rel="nofollow">StackOverflow</a> and <a
href="http://devcenter.infragistics.com/Articles/ArticleTemplate.Aspx?ArticleID=2183" rel="nofollow">Infragistics</a>.</li></ul><p>Happy debugging!</p><p>(<strong><font
size="5">*</font></strong>) &#8211; if your project works 100% on the first pass, you must be either a magician or <a
href="http://stackoverflow.com/users/22656/jon-skeet" rel="nofollow">Jon Skeet</a> (<a
href="http://meta.stackoverflow.com/questions/9134/jon-skeet-facts" rel="nofollow">Jon Skeet Facts</a> &#8211; a-la Chuck Norris, a must read).</p><div
class="shr-bookmarks shr-bookmarks-expand"><ul
class="socials"><li
class="shr-twitter"> <a
href="http://www.shareaholic.com/api/share/?title=How+To+Make+Firebug%27s+JavaScript+Debugger+Break+Inside+Dynamic+JavaScript+Using+The+%27debugger%27+Keyword+%28IE+%26amp%3B+Chrome+Too%29&amp;link=http://beerpla.net/2009/12/17/how-to-make-firebugs-javascript-debugger-break-inside-dynamic-javascript-using-the-debugger-keyword-ie-chrome-too/&amp;notes=%20As%20a%20backend%20developer%2C%20I%20don%27t%20get%20to%20work%20with%20JavaScript%20much%20anymore.%20However%2C%20from%20time%20to%20time%2C%20a%20project%20would%20come%20along%20that%20uses%20JavaScript%20%28specifically%2C%20AJAX%29%20to%20load%20some%20backend%20data%20on%20the%20fly.%20Of%20course%2C%20nothing%20works%20100%25%20right%20away%2A%2C%20so%20I%20would%20often%20have%20to%20tweak%20this%20JavaScript%20&amp;short_link=http://bit.ly/aUKYre&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=%24%7Btitle%7D+-+%24%7Bshort_link%7D&amp;service=7&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a></li><li
class="shr-facebook"> <a
href="http://www.shareaholic.com/api/share/?title=How+To+Make+Firebug%27s+JavaScript+Debugger+Break+Inside+Dynamic+JavaScript+Using+The+%27debugger%27+Keyword+%28IE+%26amp%3B+Chrome+Too%29&amp;link=http://beerpla.net/2009/12/17/how-to-make-firebugs-javascript-debugger-break-inside-dynamic-javascript-using-the-debugger-keyword-ie-chrome-too/&amp;notes=%20As%20a%20backend%20developer%2C%20I%20don%27t%20get%20to%20work%20with%20JavaScript%20much%20anymore.%20However%2C%20from%20time%20to%20time%2C%20a%20project%20would%20come%20along%20that%20uses%20JavaScript%20%28specifically%2C%20AJAX%29%20to%20load%20some%20backend%20data%20on%20the%20fly.%20Of%20course%2C%20nothing%20works%20100%25%20right%20away%2A%2C%20so%20I%20would%20often%20have%20to%20tweak%20this%20JavaScript%20&amp;short_link=http://bit.ly/aUKYre&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=5&amp;tags=&amp;ctype=" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a></li><li
class="shr-googlebuzz"> <a
href="http://www.shareaholic.com/api/share/?title=How+To+Make+Firebug%27s+JavaScript+Debugger+Break+Inside+Dynamic+JavaScript+Using+The+%27debugger%27+Keyword+%28IE+%26amp%3B+Chrome+Too%29&amp;link=http://beerpla.net/2009/12/17/how-to-make-firebugs-javascript-debugger-break-inside-dynamic-javascript-using-the-debugger-keyword-ie-chrome-too/&amp;notes=%20As%20a%20backend%20developer%2C%20I%20don%27t%20get%20to%20work%20with%20JavaScript%20much%20anymore.%20However%2C%20from%20time%20to%20time%2C%20a%20project%20would%20come%20along%20that%20uses%20JavaScript%20%28specifically%2C%20AJAX%29%20to%20load%20some%20backend%20data%20on%20the%20fly.%20Of%20course%2C%20nothing%20works%20100%25%20right%20away%2A%2C%20so%20I%20would%20often%20have%20to%20tweak%20this%20JavaScript%20&amp;short_link=http://bit.ly/aUKYre&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=257&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a></li><li
class="shr-reddit"> <a
href="http://www.shareaholic.com/api/share/?title=How+To+Make+Firebug%27s+JavaScript+Debugger+Break+Inside+Dynamic+JavaScript+Using+The+%27debugger%27+Keyword+%28IE+%26amp%3B+Chrome+Too%29&amp;link=http://beerpla.net/2009/12/17/how-to-make-firebugs-javascript-debugger-break-inside-dynamic-javascript-using-the-debugger-keyword-ie-chrome-too/&amp;notes=%20As%20a%20backend%20developer%2C%20I%20don%27t%20get%20to%20work%20with%20JavaScript%20much%20anymore.%20However%2C%20from%20time%20to%20time%2C%20a%20project%20would%20come%20along%20that%20uses%20JavaScript%20%28specifically%2C%20AJAX%29%20to%20load%20some%20backend%20data%20on%20the%20fly.%20Of%20course%2C%20nothing%20works%20100%25%20right%20away%2A%2C%20so%20I%20would%20often%20have%20to%20tweak%20this%20JavaScript%20&amp;short_link=http://bit.ly/aUKYre&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=40&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a></li><li
class="shr-hackernews"> <a
href="http://www.shareaholic.com/api/share/?title=How+To+Make+Firebug%27s+JavaScript+Debugger+Break+Inside+Dynamic+JavaScript+Using+The+%27debugger%27+Keyword+%28IE+%26amp%3B+Chrome+Too%29&amp;link=http://beerpla.net/2009/12/17/how-to-make-firebugs-javascript-debugger-break-inside-dynamic-javascript-using-the-debugger-keyword-ie-chrome-too/&amp;notes=%20As%20a%20backend%20developer%2C%20I%20don%27t%20get%20to%20work%20with%20JavaScript%20much%20anymore.%20However%2C%20from%20time%20to%20time%2C%20a%20project%20would%20come%20along%20that%20uses%20JavaScript%20%28specifically%2C%20AJAX%29%20to%20load%20some%20backend%20data%20on%20the%20fly.%20Of%20course%2C%20nothing%20works%20100%25%20right%20away%2A%2C%20so%20I%20would%20often%20have%20to%20tweak%20this%20JavaScript%20&amp;short_link=http://bit.ly/aUKYre&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=202&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Submit this to Hacker News">Submit this to Hacker News</a></li><li
class="shr-delicious"> <a
href="http://www.shareaholic.com/api/share/?title=How+To+Make+Firebug%27s+JavaScript+Debugger+Break+Inside+Dynamic+JavaScript+Using+The+%27debugger%27+Keyword+%28IE+%26amp%3B+Chrome+Too%29&amp;link=http://beerpla.net/2009/12/17/how-to-make-firebugs-javascript-debugger-break-inside-dynamic-javascript-using-the-debugger-keyword-ie-chrome-too/&amp;notes=%20As%20a%20backend%20developer%2C%20I%20don%27t%20get%20to%20work%20with%20JavaScript%20much%20anymore.%20However%2C%20from%20time%20to%20time%2C%20a%20project%20would%20come%20along%20that%20uses%20JavaScript%20%28specifically%2C%20AJAX%29%20to%20load%20some%20backend%20data%20on%20the%20fly.%20Of%20course%2C%20nothing%20works%20100%25%20right%20away%2A%2C%20so%20I%20would%20often%20have%20to%20tweak%20this%20JavaScript%20&amp;short_link=http://bit.ly/aUKYre&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=2&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a></li><li
class="shr-stumbleupon"> <a
href="http://www.shareaholic.com/api/share/?title=How+To+Make+Firebug%27s+JavaScript+Debugger+Break+Inside+Dynamic+JavaScript+Using+The+%27debugger%27+Keyword+%28IE+%26amp%3B+Chrome+Too%29&amp;link=http://beerpla.net/2009/12/17/how-to-make-firebugs-javascript-debugger-break-inside-dynamic-javascript-using-the-debugger-keyword-ie-chrome-too/&amp;notes=%20As%20a%20backend%20developer%2C%20I%20don%27t%20get%20to%20work%20with%20JavaScript%20much%20anymore.%20However%2C%20from%20time%20to%20time%2C%20a%20project%20would%20come%20along%20that%20uses%20JavaScript%20%28specifically%2C%20AJAX%29%20to%20load%20some%20backend%20data%20on%20the%20fly.%20Of%20course%2C%20nothing%20works%20100%25%20right%20away%2A%2C%20so%20I%20would%20often%20have%20to%20tweak%20this%20JavaScript%20&amp;short_link=http://bit.ly/aUKYre&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=38&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a></li><li
class="shr-mail"> <a
href="http://www.shareaholic.com/api/share/?title=How%20To%20Make%20Firebug%27s%20JavaScript%20Debugger%20Break%20Inside%20Dynamic%20JavaScript%20Using%20The%20%27debugger%27%20Keyword%20%28IE%20%26amp%3B%20Chrome%20Too%29&amp;link=http://beerpla.net/2009/12/17/how-to-make-firebugs-javascript-debugger-break-inside-dynamic-javascript-using-the-debugger-keyword-ie-chrome-too/&amp;notes=%20As%20a%20backend%20developer%2C%20I%20don%27t%20get%20to%20work%20with%20JavaScript%20much%20anymore.%20However%2C%20from%20time%20to%20time%2C%20a%20project%20would%20come%20along%20that%20uses%20JavaScript%20%28specifically%2C%20AJAX%29%20to%20load%20some%20backend%20data%20on%20the%20fly.%20Of%20course%2C%20nothing%20works%20100%25%20right%20away%2A%2C%20so%20I%20would%20often%20have%20to%20tweak%20this%20JavaScript%20&amp;short_link=http://bit.ly/aUKYre&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=201&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Email this to a friend?">Email this to a friend?</a></li></ul><div
style="clear: both;"></div></div> Similar Posts:<ul><li><a
href="http://beerpla.net/2010/01/13/wordpress-plugin-development-how-to-include-css-and-javascript-conditionally-and-only-when-needed-by-the-posts/" rel="bookmark" title="January 13, 2010">[WordPress Plugin Development] How To Include CSS and JavaScript Conditionally And Only When Needed By The Posts</a></li><li><a
href="http://beerpla.net/2010/01/31/heres-an-exclusive-10-off-nuspheres-phped-coupon-also-includes-nucoder-and-phpdoc-discount-code/" rel="bookmark" title="January 31, 2010">[Updated for 2012] Here&#039;s An Exclusive 10% Off NuSphere PHPEd Discount Coupon Code (Also Includes NuCoder And PHPDoc)</a></li><li><a
href="http://beerpla.net/2009/06/09/how-to-make-your-site-lightning-fast-by-compressing-deflategzip-your-html-javascript-css-xml-etc-in-apache/" rel="bookmark" title="June 9, 2009">How To Make Your Site Lightning Fast* By Compressing (deflate/gzip) Your HTML, Javascript, CSS, XML, etc In Apache</a></li><li><a
href="http://beerpla.net/2010/11/06/how-to-dynamically-increase-memory-limits-when-interfacing-with-wordpress-using-xml-rpc-windows-live-writer-etc/" rel="bookmark" title="November 6, 2010">How To Dynamically Increase Memory Limits When Interfacing With WordPress Using XML-RPC (Windows Live Writer, Etc)</a></li><li><a
href="http://beerpla.net/2012/04/13/how-to-fix-incomplete-wordpress-wxr-exports/" rel="bookmark" title="April 13, 2012">How To Fix Incomplete WordPress (WXR) Exports</a></li></ul><p><a
class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fbeerpla.net%2F2009%2F12%2F17%2Fhow-to-make-firebugs-javascript-debugger-break-inside-dynamic-javascript-using-the-debugger-keyword-ie-chrome-too%2F&amp;title=How%20To%20Make%20Firebug%26%23039%3Bs%20JavaScript%20Debugger%20Break%20Inside%20Dynamic%20JavaScript%20Using%20The%20%26%23039%3Bdebugger%26%23039%3B%20Keyword%20%28IE%20%26amp%3B%20Chrome%20Too%29" id="wpa2a_6"><img
src="http://beerpla.net/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded> <wfw:commentRss>http://beerpla.net/2009/12/17/how-to-make-firebugs-javascript-debugger-break-inside-dynamic-javascript-using-the-debugger-keyword-ie-chrome-too/feed/</wfw:commentRss> <slash:comments>15</slash:comments> </item> <item><title>Modern-Day Frame Busting With X-FRAME-OPTIONS And &quot;This content cannot be displayed in a frame&quot; Warnings</title><link>http://beerpla.net/2009/10/29/modern-day-frame-busting-with-x-frame-options-and-this-content-cannot-be-displayed-in-a-frame-warnings/</link> <comments>http://beerpla.net/2009/10/29/modern-day-frame-busting-with-x-frame-options-and-this-content-cannot-be-displayed-in-a-frame-warnings/#comments</comments> <pubDate>Fri, 30 Oct 2009 01:10:32 +0000</pubDate> <dc:creator>Artem Russakovskii</dc:creator> <category><![CDATA[CSS]]></category> <category><![CDATA[JavaScript]]></category> <category><![CDATA[Programming]]></category> <category><![CDATA[Security]]></category> <category><![CDATA[Tips]]></category> <category><![CDATA[click jacking]]></category> <category><![CDATA[clickjacking]]></category> <category><![CDATA[deny]]></category> <category><![CDATA[Firefox]]></category> <category><![CDATA[frame busting]]></category> <category><![CDATA[framebusting]]></category> <category><![CDATA[framekiller]]></category> <category><![CDATA[internet explorer]]></category> <category><![CDATA[same-origin]]></category> <category><![CDATA[sameorigin]]></category> <category><![CDATA[x-frame-options]]></category> <category><![CDATA[xss]]></category> <guid
isPermaLink="false">http://beerpla.net/2009/10/29/modern-day-frame-busting-with-x-frame-options-and-this-content-cannot-be-displayed-in-a-frame-warnings/</guid> <description><![CDATA[<p><a
href="http://beerpla.net/wp-content/uploads/ModernDayFrameBustingWithXFRAMEOPTIONSAn_F770/image.png" class="lightview" rel="gallery['1194']" title="image"><img
style="margin: 0px 10px 10px 0px; display: inline" title="image" alt="image" align="left" src="http://beerpla.net/wp-content/uploads/ModernDayFrameBustingWithXFRAMEOPTIONSAn_F770/image_thumb.png" width="150" height="150" /></a> Today I found out something entirely new about <a
href="http://en.wikipedia.org/wiki/Framekiller" rel="nofollow">framebusting</a> and specifically <a
href="http://beerpla.net/2009/02/12/how-to-fight-clickjacking-using-the-recent-twitter-hijacking-as-an-example/">clickjacking</a> protection techniques.</p><p>I was working with a site that was using frames. Suddenly, one of the frames (which was hosted on a domain that differed from the one it was embedded in) displayed the following message (in Firefox 3.5.4):</p><div
class="wp_syntax"><div
class="code"><pre>This content cannot be displayed in a frame
&#160;
To protect your security, the publisher of this content does
not allow it to be displayed in a frame.
&#160;
Click here to open this content in a new window</pre></div></div><p><a
href="http://beerpla.net/wp-content/uploads/ModernDayFrameBustingWithXFRAMEOPTIONSAn_F770/image_3.png" class="lightview" rel="gallery['1194']" title="image"><img
style="display: block; float: none; margin-left: auto; margin-right: auto" title="image" alt="image" src="http://beerpla.net/wp-content/uploads/ModernDayFrameBustingWithXFRAMEOPTIONSAn_F770/image_thumb_3.png" width="677" height="221" /></a></p><p>Notice how this is a native Firefox window and not a web page rendering. Quite stumped, I started looking at the frame response and finally found that it included this ...<div
class=clear></div> <a
href="http://beerpla.net/2009/10/29/modern-day-frame-busting-with-x-frame-options-and-this-content-cannot-be-displayed-in-a-frame-warnings/" class="read_more"><div
class=excerpt-end>Read the rest of this article &#187;</div></a></p>]]></description> <content:encoded><![CDATA[<p><a
href="http://beerpla.net/wp-content/uploads/ModernDayFrameBustingWithXFRAMEOPTIONSAn_F770/image.png" class="lightview" rel="gallery['1194']" title="image"><img
style="margin: 0px 10px 10px 0px; display: inline" title="image" alt="image" align="left" src="http://beerpla.net/wp-content/uploads/ModernDayFrameBustingWithXFRAMEOPTIONSAn_F770/image_thumb.png" width="150" height="150" /></a> Today I found out something entirely new about <a
href="http://en.wikipedia.org/wiki/Framekiller" rel="nofollow">framebusting</a> and specifically <a
href="http://beerpla.net/2009/02/12/how-to-fight-clickjacking-using-the-recent-twitter-hijacking-as-an-example/">clickjacking</a> protection techniques.</p><p>I was working with a site that was using frames. Suddenly, one of the frames (which was hosted on a domain that differed from the one it was embedded in) displayed the following message (in Firefox 3.5.4):</p><div
class="wp_syntax"><div
class="code"><pre>This content cannot be displayed in a frame
&nbsp;
To protect your security, the publisher of this content does
not allow it to be displayed in a frame.
&nbsp;
Click here to open this content in a new window</pre></div></div><p><a
href="http://beerpla.net/wp-content/uploads/ModernDayFrameBustingWithXFRAMEOPTIONSAn_F770/image_3.png" class="lightview" rel="gallery['1194']" title="image"><img
style="display: block; float: none; margin-left: auto; margin-right: auto" title="image" alt="image" src="http://beerpla.net/wp-content/uploads/ModernDayFrameBustingWithXFRAMEOPTIONSAn_F770/image_thumb_3.png" width="677" height="221" /></a></p><p>Notice how this is a native Firefox window and not a web page rendering. Quite stumped, I started looking at the frame response and finally found that it included this little header:</p><div
class="wp_syntax"><div
class="code"><pre>X-FRAME-OPTIONS: DENY</pre></div></div><p>Turns out that modern browsers like <strike>Firefox 3.5</strike> (turns out it&#039;s the <a
href="https://addons.mozilla.org/en-US/firefox/addon/722" rel="nofollow">NoScript addon</a> that does this and not Firefox itself) and IE8 treat this header as a precautionary measure and display a generic &quot;warning&quot; to the user instead of the page content in certain conditions described below. This effort, <a
href="http://blogs.msdn.com/ie/archive/2009/01/27/ie8-security-part-vii-clickjacking-defenses.aspx" rel="nofollow">led, surprisingly, by Microsoft</a>, was really to protect users from clickjacking (I wrote about clickjacking <a
href="http://beerpla.net/2009/02/12/how-to-fight-clickjacking-using-the-recent-twitter-hijacking-as-an-example/">here</a> earlier) but can be viewed as an alternative to framebusting.</p><p>Microsoft introduced the new X-FRAME-OPTIONS header with the following possible values:</p><ul><li>DENY &#8211; prevents the page from being rendered if it is contained in a frame</li><li>SAMEORIGIN &#8211; same as above, unless the page belongs to the same domain as the top-level frameset holder.</li></ul><p><strike>Firefox adopted this technique a few months later</strike> (again, I was wrong here &#8211; it was NoScript that did it), and I expect other browsers to follow.</p><p>So what does it mean to you, the developer?</p><ul><li>setting such a header will essentially render frame busting code unnecessary in modern browsers</li><li>but it has a downside of displaying a relatively ugly warning to the user</li><li>no automatic redirect is done as your page (including any framebusting code) is not loaded</li><li>thus requiring an extra click</li><li>and popping up a new tab or window</li><li>it will work even if the user has Javascript disabled, which is more secure</li></ul><p>Some useful discussion on the issue can also be found in <a
href="http://hackademix.net/2009/01/29/x-frame-options-in-firefox/" rel="nofollow">this post</a> on Hackademix.net.</p><p>So is it good practice to use this new X-FRAME-OPTIONS header instead of the traditional framebusting code? I definitely think so, especially if Firefox and other browsers start supporting it. What do you say?</p><div
class="shr-bookmarks shr-bookmarks-expand"><ul
class="socials"><li
class="shr-twitter"> <a
href="http://www.shareaholic.com/api/share/?title=Modern-Day+Frame+Busting+With+X-FRAME-OPTIONS+And+%26quot%3BThis+content+cannot+be+displayed+in+a+frame%26quot%3B+Warnings&amp;link=http://beerpla.net/2009/10/29/modern-day-frame-busting-with-x-frame-options-and-this-content-cannot-be-displayed-in-a-frame-warnings/&amp;notes=%20Today%20I%20found%20out%20something%20entirely%20new%20about%20framebusting%20and%20specifically%20clickjacking%20protection%20techniques.%0D%0AI%20was%20working%20with%20a%20site%20that%20was%20using%20frames.%20Suddenly%2C%20one%20of%20the%20frames%20%28which%20was%20hosted%20on%20a%20domain%20that%20differed%20from%20the%20one%20it%20was%20embedded%20in%29%20displayed%20the%20following%20message&amp;short_link=http://bit.ly/chOjyg&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=%24%7Btitle%7D+-+%24%7Bshort_link%7D&amp;service=7&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a></li><li
class="shr-facebook"> <a
href="http://www.shareaholic.com/api/share/?title=Modern-Day+Frame+Busting+With+X-FRAME-OPTIONS+And+%26quot%3BThis+content+cannot+be+displayed+in+a+frame%26quot%3B+Warnings&amp;link=http://beerpla.net/2009/10/29/modern-day-frame-busting-with-x-frame-options-and-this-content-cannot-be-displayed-in-a-frame-warnings/&amp;notes=%20Today%20I%20found%20out%20something%20entirely%20new%20about%20framebusting%20and%20specifically%20clickjacking%20protection%20techniques.%0D%0AI%20was%20working%20with%20a%20site%20that%20was%20using%20frames.%20Suddenly%2C%20one%20of%20the%20frames%20%28which%20was%20hosted%20on%20a%20domain%20that%20differed%20from%20the%20one%20it%20was%20embedded%20in%29%20displayed%20the%20following%20message&amp;short_link=http://bit.ly/chOjyg&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=5&amp;tags=&amp;ctype=" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a></li><li
class="shr-googlebuzz"> <a
href="http://www.shareaholic.com/api/share/?title=Modern-Day+Frame+Busting+With+X-FRAME-OPTIONS+And+%26quot%3BThis+content+cannot+be+displayed+in+a+frame%26quot%3B+Warnings&amp;link=http://beerpla.net/2009/10/29/modern-day-frame-busting-with-x-frame-options-and-this-content-cannot-be-displayed-in-a-frame-warnings/&amp;notes=%20Today%20I%20found%20out%20something%20entirely%20new%20about%20framebusting%20and%20specifically%20clickjacking%20protection%20techniques.%0D%0AI%20was%20working%20with%20a%20site%20that%20was%20using%20frames.%20Suddenly%2C%20one%20of%20the%20frames%20%28which%20was%20hosted%20on%20a%20domain%20that%20differed%20from%20the%20one%20it%20was%20embedded%20in%29%20displayed%20the%20following%20message&amp;short_link=http://bit.ly/chOjyg&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=257&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a></li><li
class="shr-reddit"> <a
href="http://www.shareaholic.com/api/share/?title=Modern-Day+Frame+Busting+With+X-FRAME-OPTIONS+And+%26quot%3BThis+content+cannot+be+displayed+in+a+frame%26quot%3B+Warnings&amp;link=http://beerpla.net/2009/10/29/modern-day-frame-busting-with-x-frame-options-and-this-content-cannot-be-displayed-in-a-frame-warnings/&amp;notes=%20Today%20I%20found%20out%20something%20entirely%20new%20about%20framebusting%20and%20specifically%20clickjacking%20protection%20techniques.%0D%0AI%20was%20working%20with%20a%20site%20that%20was%20using%20frames.%20Suddenly%2C%20one%20of%20the%20frames%20%28which%20was%20hosted%20on%20a%20domain%20that%20differed%20from%20the%20one%20it%20was%20embedded%20in%29%20displayed%20the%20following%20message&amp;short_link=http://bit.ly/chOjyg&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=40&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a></li><li
class="shr-hackernews"> <a
href="http://www.shareaholic.com/api/share/?title=Modern-Day+Frame+Busting+With+X-FRAME-OPTIONS+And+%26quot%3BThis+content+cannot+be+displayed+in+a+frame%26quot%3B+Warnings&amp;link=http://beerpla.net/2009/10/29/modern-day-frame-busting-with-x-frame-options-and-this-content-cannot-be-displayed-in-a-frame-warnings/&amp;notes=%20Today%20I%20found%20out%20something%20entirely%20new%20about%20framebusting%20and%20specifically%20clickjacking%20protection%20techniques.%0D%0AI%20was%20working%20with%20a%20site%20that%20was%20using%20frames.%20Suddenly%2C%20one%20of%20the%20frames%20%28which%20was%20hosted%20on%20a%20domain%20that%20differed%20from%20the%20one%20it%20was%20embedded%20in%29%20displayed%20the%20following%20message&amp;short_link=http://bit.ly/chOjyg&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=202&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Submit this to Hacker News">Submit this to Hacker News</a></li><li
class="shr-delicious"> <a
href="http://www.shareaholic.com/api/share/?title=Modern-Day+Frame+Busting+With+X-FRAME-OPTIONS+And+%26quot%3BThis+content+cannot+be+displayed+in+a+frame%26quot%3B+Warnings&amp;link=http://beerpla.net/2009/10/29/modern-day-frame-busting-with-x-frame-options-and-this-content-cannot-be-displayed-in-a-frame-warnings/&amp;notes=%20Today%20I%20found%20out%20something%20entirely%20new%20about%20framebusting%20and%20specifically%20clickjacking%20protection%20techniques.%0D%0AI%20was%20working%20with%20a%20site%20that%20was%20using%20frames.%20Suddenly%2C%20one%20of%20the%20frames%20%28which%20was%20hosted%20on%20a%20domain%20that%20differed%20from%20the%20one%20it%20was%20embedded%20in%29%20displayed%20the%20following%20message&amp;short_link=http://bit.ly/chOjyg&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=2&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a></li><li
class="shr-stumbleupon"> <a
href="http://www.shareaholic.com/api/share/?title=Modern-Day+Frame+Busting+With+X-FRAME-OPTIONS+And+%26quot%3BThis+content+cannot+be+displayed+in+a+frame%26quot%3B+Warnings&amp;link=http://beerpla.net/2009/10/29/modern-day-frame-busting-with-x-frame-options-and-this-content-cannot-be-displayed-in-a-frame-warnings/&amp;notes=%20Today%20I%20found%20out%20something%20entirely%20new%20about%20framebusting%20and%20specifically%20clickjacking%20protection%20techniques.%0D%0AI%20was%20working%20with%20a%20site%20that%20was%20using%20frames.%20Suddenly%2C%20one%20of%20the%20frames%20%28which%20was%20hosted%20on%20a%20domain%20that%20differed%20from%20the%20one%20it%20was%20embedded%20in%29%20displayed%20the%20following%20message&amp;short_link=http://bit.ly/chOjyg&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=38&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a></li><li
class="shr-mail"> <a
href="http://www.shareaholic.com/api/share/?title=Modern-Day%20Frame%20Busting%20With%20X-FRAME-OPTIONS%20And%20%26quot%3BThis%20content%20cannot%20be%20displayed%20in%20a%20frame%26quot%3B%20Warnings&amp;link=http://beerpla.net/2009/10/29/modern-day-frame-busting-with-x-frame-options-and-this-content-cannot-be-displayed-in-a-frame-warnings/&amp;notes=%20Today%20I%20found%20out%20something%20entirely%20new%20about%20framebusting%20and%20specifically%20clickjacking%20protection%20techniques.%0D%0AI%20was%20working%20with%20a%20site%20that%20was%20using%20frames.%20Suddenly%2C%20one%20of%20the%20frames%20%28which%20was%20hosted%20on%20a%20domain%20that%20differed%20from%20the%20one%20it%20was%20embedded%20in%29%20displayed%20the%20following%20message&amp;short_link=http://bit.ly/chOjyg&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=201&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Email this to a friend?">Email this to a friend?</a></li></ul><div
style="clear: both;"></div></div> Similar Posts:<ul><li><a
href="http://beerpla.net/2009/02/12/how-to-fight-clickjacking-using-the-recent-twitter-hijacking-as-an-example/" rel="bookmark" title="February 12, 2009">How To Fight Clickjacking (Using The Recent Twitter Hijacking As An Example)</a></li><li><a
href="http://beerpla.net/2009/11/21/meet-firefox-for-mobile-video-feature-highlights-more-info/" rel="bookmark" title="November 21, 2009">Meet Firefox For Mobile [Video + Feature Highlights + More Info]</a></li><li><a
href="http://beerpla.net/2007/08/04/watch-a-useful-linux-command-you-may-have-never-heard-of/" rel="bookmark" title="August 4, 2007">Watch &#8211; A Useful Linux Command You May Have Never Heard Of</a></li><li><a
href="http://beerpla.net/2009/06/09/how-to-make-your-site-lightning-fast-by-compressing-deflategzip-your-html-javascript-css-xml-etc-in-apache/" rel="bookmark" title="June 9, 2009">How To Make Your Site Lightning Fast* By Compressing (deflate/gzip) Your HTML, Javascript, CSS, XML, etc In Apache</a></li><li><a
href="http://beerpla.net/2006/06/12/rendr-a-live-awesome-csshtml-rendering-tool/" rel="bookmark" title="June 12, 2006">Rendr &#8211; a Live Awesome CSS/HTML Rendering Tool</a></li></ul><p><a
class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fbeerpla.net%2F2009%2F10%2F29%2Fmodern-day-frame-busting-with-x-frame-options-and-this-content-cannot-be-displayed-in-a-frame-warnings%2F&amp;title=Modern-Day%20Frame%20Busting%20With%20X-FRAME-OPTIONS%20And%20%26quot%3BThis%20content%20cannot%20be%20displayed%20in%20a%20frame%26quot%3B%20Warnings" id="wpa2a_8"><img
src="http://beerpla.net/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded> <wfw:commentRss>http://beerpla.net/2009/10/29/modern-day-frame-busting-with-x-frame-options-and-this-content-cannot-be-displayed-in-a-frame-warnings/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> <item><title>How To Fight Clickjacking (Using The Recent Twitter Hijacking As An Example)</title><link>http://beerpla.net/2009/02/12/how-to-fight-clickjacking-using-the-recent-twitter-hijacking-as-an-example/</link> <comments>http://beerpla.net/2009/02/12/how-to-fight-clickjacking-using-the-recent-twitter-hijacking-as-an-example/#comments</comments> <pubDate>Thu, 12 Feb 2009 19:43:53 +0000</pubDate> <dc:creator>Artem Russakovskii</dc:creator> <category><![CDATA[Programming]]></category> <category><![CDATA[Security]]></category> <category><![CDATA[Tutorials]]></category> <category><![CDATA[Twitter]]></category> <category><![CDATA[attack]]></category> <category><![CDATA[click]]></category> <category><![CDATA[clickjacking]]></category> <category><![CDATA[combat]]></category> <category><![CDATA[fight]]></category> <category><![CDATA[Firefox]]></category> <category><![CDATA[ie]]></category> <category><![CDATA[injection]]></category> <category><![CDATA[internet explorer]]></category> <category><![CDATA[jacking]]></category> <category><![CDATA[MySQL]]></category> <category><![CDATA[noscript]]></category> <category><![CDATA[protect]]></category> <category><![CDATA[twitter]]></category> <category><![CDATA[xss]]></category> <guid
isPermaLink="false">http://beerpla.net/2009/02/12/how-to-fight-clickjacking-using-the-recent-twitter-hijacking-as-an-example/</guid> <description><![CDATA[<h2><img
style="margin: 0px 10px 10px 0px; display: inline" title="image" alt="image" align="left" src="http://beerpla.net/wp-content/uploads/HowToFightClickjackingUsingTheRecentTwit_8F77/image.png" width="150" height="138" /> Introduction</h2><p><a
href="http://en.wikipedia.org/wiki/Clickjacking">Clickjacking</a> is a malicious technique of tricking web users into revealing confidential information or taking control of their computer while clicking on seemingly innocuous web pages. A vulnerability across a variety of browsers and platforms, a clickjacking takes the form of embedded code or script that can execute without the user&#039;s knowledge, such as clicking on a button that appears to perform another function (credit: Wikipedia).</p><p>Clickjacking is hard to combat. From a technical standpoint, the attack is executed using a combination of <a
href="http://en.wikipedia.org/wiki/Css">CSS</a> and <a
href="http://en.wikipedia.org/wiki/IFrame">iFrames</a>, which are both harmless web technologies, and relies mostly on tricking users by means of social engineering. Additionally, the only server side technique against clickjacking known to me is “<a
href="http://en.wikipedia.org/wiki/Framekiller">frame breaking</a>...<div
class=clear></div> <a
href="http://beerpla.net/2009/02/12/how-to-fight-clickjacking-using-the-recent-twitter-hijacking-as-an-example/" class="read_more"><div
class=excerpt-end>Read the rest of this article &#187;</div></a></p>]]></description> <content:encoded><![CDATA[<h2><img
style="margin: 0px 10px 10px 0px; display: inline" title="image" alt="image" align="left" src="http://beerpla.net/wp-content/uploads/HowToFightClickjackingUsingTheRecentTwit_8F77/image.png" width="150" height="138" /> Introduction</h2><p><a
href="http://en.wikipedia.org/wiki/Clickjacking">Clickjacking</a> is a malicious technique of tricking web users into revealing confidential information or taking control of their computer while clicking on seemingly innocuous web pages. A vulnerability across a variety of browsers and platforms, a clickjacking takes the form of embedded code or script that can execute without the user&#039;s knowledge, such as clicking on a button that appears to perform another function (credit: Wikipedia).</p><p>Clickjacking is hard to combat. From a technical standpoint, the attack is executed using a combination of <a
href="http://en.wikipedia.org/wiki/Css">CSS</a> and <a
href="http://en.wikipedia.org/wiki/IFrame">iFrames</a>, which are both harmless web technologies, and relies mostly on tricking users by means of social engineering. Additionally, the only server side technique against clickjacking known to me is “<a
href="http://en.wikipedia.org/wiki/Framekiller">frame breaking</a>”, which would cause a legitemate site to break out of any iFrames it may be embedded in. This is not always the desired behavior and is generally frowned upon.</p><p><div
class="note"><div
class="noteclassic"><a
href="http://en.wikipedia.org/wiki/Cross-site_scripting">XSS</a> and <a
href="http://www.codinghorror.com/blog/archives/001171.html">CSRF</a> are examples of similar malicious web attacks.</div></div></p><h2>Generic Example</h2><p>In laymen’s terms, clickjacking means that it is quite possible for websites to trick you into, for example, clicking a button to show a cute kitty while in reality prompting a deletion of all your hotmail email. A malicious site uses an iFrame (which essentially allows embedding sites within other sites) with hotmail loaded inside and hidden using CSS (which is a web language for styling HTML elements). A button named “Show Me The Next Awwww Kitty” is then placed by the malicious site and positioned below the iFrame layer (manipulated by CSS, yet again). However, because the iFrame is hidden, it looks like the “Aww” button is all you’re clicking. Wrong!</p><p><a
href="http://beerpla.net/wp-content/uploads/HowToFightClickjackingUsingTheRecentTwit_8F77/image_3.png" class="lightview" rel="gallery['774']" title="image"><img
style="display: block; float: none; margin-left: auto; margin-right: auto" title="image" alt="image" src="http://beerpla.net/wp-content/uploads/HowToFightClickjackingUsingTheRecentTwit_8F77/image_thumb.png" width="351" height="92" /></a>&#160;</p><h2>Latest Example: Twitter</h2><p>This morning a new, though harmless, epidemic hit twitter. Hundreds and thousands of messages saying “Don’t Click: <a
href="http://tinyurl.com/amgzs6" rel="nofollow">http://tinyurl.com/amgzs6</a>” started showing up. Clicking the link shows a simple page with 1 button:</p><p><a
href="http://beerpla.net/wp-content/uploads/HowToFightClickjackingUsingTheRecentTwit_8F77/image_4.png" class="lightview" rel="gallery['774']" title="image"><img
style="display: block; float: none; margin-left: auto; margin-right: auto" title="image" alt="image" src="http://beerpla.net/wp-content/uploads/HowToFightClickjackingUsingTheRecentTwit_8F77/image_thumb_3.png" width="183" height="129" /></a> Clicking (which I of course did) uses clickjacking to repost the message to your own twitter account. Take a look yourself: <a
title="http://search.twitter.com/search?q=don%27t+click" href="http://search.twitter.com/search?q=don%27t+click" rel="nofollow">http://search.twitter.com/search?q=don%27t+click</a>.</p><p><a
href="http://beerpla.net/wp-content/uploads/HowToFightClickjackingUsingTheRecentTwit_8F77/image_5.png" class="lightview" rel="gallery['774']" title="image"><img
style="display: block; float: none; margin-left: auto; margin-right: auto" title="image" alt="image" src="http://beerpla.net/wp-content/uploads/HowToFightClickjackingUsingTheRecentTwit_8F77/image_thumb_4.png" width="504" height="492" /></a></p><p>All of these are a result of an experiment by <a
href="http://www.korben.info/petit-cours-de-twitt-jacking.html" rel="nofollow">some French guys</a> to mess around with twitter and show the effects of clickjacking. Thank you for that, French guys. Creating awareness via the most social platform on the web is the best thing they could do for us.</p><p><div
class="note"><div
class="notetip">Twitter rolled out a quick fix, using the very “frame breaking” technique I mentioned earlier. Now any site trying to embed twitter in an iFrame will redirect to it.</div></div></p><h2>Fight Clickjacking</h2><p><img
style="margin: 0px 10px 0px 0px; display: inline" title="image" alt="image" align="left" src="http://beerpla.net/wp-content/uploads/HowToFightClickjackingUsingTheRecentTwit_8F77/image_6.png" width="150" height="150" /> James Padolsey recently wrote an excellent <a
href="http://james.padolsey.com/general/clickjacking-twitter/">blog post about clickjacking</a> and mentioned Twitter specifically. Because clickjacking relies mostly on social hacking (i.e. tricking people into clicking malicious links and buttons), Twitter is nothing but a perfect platform. James gives some nice background info and code examples. He correctly highlights, as I did earlier, that clickjacking is not a software bug – it’s a malicious technique exploiting harmless technologies.</p><h4>So how does one fight clickjacking?</h4><p>At this point the most reliable way is to use Firefox and the <a
href="http://noscript.net/">NoScript extension</a>. NoScript provides a simple, yet amazingly effective feature, called <a
href="http://noscript.net/faq#qa7_4">ClearClick</a>. From their site:</p><p>“…it&#039;s enabled by default, protecting NoScript users from Clickjacking everywhere: it even remains active if you switch NoScript in the less safe <em>Allow scripts globally</em> mode. How does it work? Clickjacking hides or displaces or partially covers something you wouldn&#039;t want to click, if you could see it in its original context. ClearClick does the opposite: whenever you click a plugin object or a framed page, it takes a screenshot of it alone and opaque (i.e. an image of it with no transparencies and no overlaying objects), then compares it with a screenshot of the parent page as you can see it. If the two images differ, a clickjacking attack is probably happening and NoScript raises a &quot;ClearClick warning&quot;, showing you the contextualized and &quot;clear&quot; object you were about to click, so you can evaluate by yourself if that was really something you wanted to do.”</p><p>Did ClearClick work in the earlier twitter attack? Sure did! After I clicked the “Don’t click” button Noscript promptly popped up a warning showing the hidden iFrame (since the original malicious page has been removed, I found <a
href="http://www.korben.info/twitter/ohoh.html" rel="nofollow">another similar page</a> from the same author for screenshot purposes).</p><p><a
href="http://beerpla.net/wp-content/uploads/HowToFightClickjackingUsingTheRecentTwit_8F77/image_7.png" class="lightview" rel="gallery['774']" title="image"><img
style="display: block; float: none; margin-left: auto; margin-right: auto" title="image" alt="image" src="http://beerpla.net/wp-content/uploads/HowToFightClickjackingUsingTheRecentTwit_8F77/image_thumb_5.png" width="426" height="426" /></a>&#160;</p><p>So, even if you don’t want to enable NoScript globally, install it anyway, just for ClearClick.</p><p><div
class="note"><div
class="noteclassic">Using a browser other than Firefox? The best technique you should use is, as a general rule, don’t click on suspicious buttons and links on pages you are not familiar with. Remember: you’re on the Internet and it is full of traps.</div></div></p><p>That about covers what I had to say about clickjacking. Stay safe, folks!</p><div
class="shr-bookmarks shr-bookmarks-expand"><ul
class="socials"><li
class="shr-twitter"> <a
href="http://www.shareaholic.com/api/share/?title=How+To+Fight+Clickjacking+%28Using+The+Recent+Twitter+Hijacking+As+An+Example%29&amp;link=http://beerpla.net/2009/02/12/how-to-fight-clickjacking-using-the-recent-twitter-hijacking-as-an-example/&amp;notes=%20Introduction%20%20Clickjacking%20is%20a%20malicious%20technique%20of%20tricking%20web%20users%20into%20revealing%20confidential%20information%20or%20taking%20control%20of%20their%20computer%20while%20clicking%20on%20seemingly%20innocuous%20web%20pages.%20A%20vulnerability%20across%20a%20variety%20of%20browsers%20and%20platforms%2C%20a%20clickjacking%20takes%20the%20form%20of%20embedde&amp;short_link=http://bit.ly/bXYPgv&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=%24%7Btitle%7D+-+%24%7Bshort_link%7D&amp;service=7&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a></li><li
class="shr-facebook"> <a
href="http://www.shareaholic.com/api/share/?title=How+To+Fight+Clickjacking+%28Using+The+Recent+Twitter+Hijacking+As+An+Example%29&amp;link=http://beerpla.net/2009/02/12/how-to-fight-clickjacking-using-the-recent-twitter-hijacking-as-an-example/&amp;notes=%20Introduction%20%20Clickjacking%20is%20a%20malicious%20technique%20of%20tricking%20web%20users%20into%20revealing%20confidential%20information%20or%20taking%20control%20of%20their%20computer%20while%20clicking%20on%20seemingly%20innocuous%20web%20pages.%20A%20vulnerability%20across%20a%20variety%20of%20browsers%20and%20platforms%2C%20a%20clickjacking%20takes%20the%20form%20of%20embedde&amp;short_link=http://bit.ly/bXYPgv&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=5&amp;tags=&amp;ctype=" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a></li><li
class="shr-googlebuzz"> <a
href="http://www.shareaholic.com/api/share/?title=How+To+Fight+Clickjacking+%28Using+The+Recent+Twitter+Hijacking+As+An+Example%29&amp;link=http://beerpla.net/2009/02/12/how-to-fight-clickjacking-using-the-recent-twitter-hijacking-as-an-example/&amp;notes=%20Introduction%20%20Clickjacking%20is%20a%20malicious%20technique%20of%20tricking%20web%20users%20into%20revealing%20confidential%20information%20or%20taking%20control%20of%20their%20computer%20while%20clicking%20on%20seemingly%20innocuous%20web%20pages.%20A%20vulnerability%20across%20a%20variety%20of%20browsers%20and%20platforms%2C%20a%20clickjacking%20takes%20the%20form%20of%20embedde&amp;short_link=http://bit.ly/bXYPgv&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=257&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a></li><li
class="shr-reddit"> <a
href="http://www.shareaholic.com/api/share/?title=How+To+Fight+Clickjacking+%28Using+The+Recent+Twitter+Hijacking+As+An+Example%29&amp;link=http://beerpla.net/2009/02/12/how-to-fight-clickjacking-using-the-recent-twitter-hijacking-as-an-example/&amp;notes=%20Introduction%20%20Clickjacking%20is%20a%20malicious%20technique%20of%20tricking%20web%20users%20into%20revealing%20confidential%20information%20or%20taking%20control%20of%20their%20computer%20while%20clicking%20on%20seemingly%20innocuous%20web%20pages.%20A%20vulnerability%20across%20a%20variety%20of%20browsers%20and%20platforms%2C%20a%20clickjacking%20takes%20the%20form%20of%20embedde&amp;short_link=http://bit.ly/bXYPgv&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=40&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a></li><li
class="shr-hackernews"> <a
href="http://www.shareaholic.com/api/share/?title=How+To+Fight+Clickjacking+%28Using+The+Recent+Twitter+Hijacking+As+An+Example%29&amp;link=http://beerpla.net/2009/02/12/how-to-fight-clickjacking-using-the-recent-twitter-hijacking-as-an-example/&amp;notes=%20Introduction%20%20Clickjacking%20is%20a%20malicious%20technique%20of%20tricking%20web%20users%20into%20revealing%20confidential%20information%20or%20taking%20control%20of%20their%20computer%20while%20clicking%20on%20seemingly%20innocuous%20web%20pages.%20A%20vulnerability%20across%20a%20variety%20of%20browsers%20and%20platforms%2C%20a%20clickjacking%20takes%20the%20form%20of%20embedde&amp;short_link=http://bit.ly/bXYPgv&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=202&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Submit this to Hacker News">Submit this to Hacker News</a></li><li
class="shr-delicious"> <a
href="http://www.shareaholic.com/api/share/?title=How+To+Fight+Clickjacking+%28Using+The+Recent+Twitter+Hijacking+As+An+Example%29&amp;link=http://beerpla.net/2009/02/12/how-to-fight-clickjacking-using-the-recent-twitter-hijacking-as-an-example/&amp;notes=%20Introduction%20%20Clickjacking%20is%20a%20malicious%20technique%20of%20tricking%20web%20users%20into%20revealing%20confidential%20information%20or%20taking%20control%20of%20their%20computer%20while%20clicking%20on%20seemingly%20innocuous%20web%20pages.%20A%20vulnerability%20across%20a%20variety%20of%20browsers%20and%20platforms%2C%20a%20clickjacking%20takes%20the%20form%20of%20embedde&amp;short_link=http://bit.ly/bXYPgv&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=2&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a></li><li
class="shr-stumbleupon"> <a
href="http://www.shareaholic.com/api/share/?title=How+To+Fight+Clickjacking+%28Using+The+Recent+Twitter+Hijacking+As+An+Example%29&amp;link=http://beerpla.net/2009/02/12/how-to-fight-clickjacking-using-the-recent-twitter-hijacking-as-an-example/&amp;notes=%20Introduction%20%20Clickjacking%20is%20a%20malicious%20technique%20of%20tricking%20web%20users%20into%20revealing%20confidential%20information%20or%20taking%20control%20of%20their%20computer%20while%20clicking%20on%20seemingly%20innocuous%20web%20pages.%20A%20vulnerability%20across%20a%20variety%20of%20browsers%20and%20platforms%2C%20a%20clickjacking%20takes%20the%20form%20of%20embedde&amp;short_link=http://bit.ly/bXYPgv&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=38&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a></li><li
class="shr-mail"> <a
href="http://www.shareaholic.com/api/share/?title=How%20To%20Fight%20Clickjacking%20%28Using%20The%20Recent%20Twitter%20Hijacking%20As%20An%20Example%29&amp;link=http://beerpla.net/2009/02/12/how-to-fight-clickjacking-using-the-recent-twitter-hijacking-as-an-example/&amp;notes=%20Introduction%20%20Clickjacking%20is%20a%20malicious%20technique%20of%20tricking%20web%20users%20into%20revealing%20confidential%20information%20or%20taking%20control%20of%20their%20computer%20while%20clicking%20on%20seemingly%20innocuous%20web%20pages.%20A%20vulnerability%20across%20a%20variety%20of%20browsers%20and%20platforms%2C%20a%20clickjacking%20takes%20the%20form%20of%20embedde&amp;short_link=http://bit.ly/bXYPgv&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=201&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Email this to a friend?">Email this to a friend?</a></li></ul><div
style="clear: both;"></div></div> Similar Posts:<ul><li><a
href="http://beerpla.net/2009/10/29/modern-day-frame-busting-with-x-frame-options-and-this-content-cannot-be-displayed-in-a-frame-warnings/" rel="bookmark" title="October 29, 2009">Modern-Day Frame Busting With X-FRAME-OPTIONS And &quot;This content cannot be displayed in a frame&quot; Warnings</a></li><li><a
href="http://beerpla.net/2009/12/20/enable-a-twitter-retweet-rt-button-that-lets-you-add-comments-before-retweeting/" rel="bookmark" title="December 20, 2009">Enable A Twitter Retweet (RT) Button That Lets You Add Comments Before Retweeting</a></li><li><a
href="http://beerpla.net/2010/02/03/how-not-to-implement-a-web-application-that-handles-external-authentication-using-betwittered-com-as-an-example/" rel="bookmark" title="February 3, 2010">How *Not* To Implement A Web Application That Handles External Authentication, Using BeTwittered.com As An Example</a></li><li><a
href="http://beerpla.net/2009/10/24/are-you-a-stackoverflow-com-superuser-com-serverfault-com-fan-heres-a-greasemonkey-script-to-keep-track-of-your-accounts-on-all-of-them/" rel="bookmark" title="October 24, 2009">StackOverflow.com, SuperUser.com, ServerFault.com Fan? Here&#039;s A Greasemonkey Script To Keep Track Of All Your Accounts</a></li><li><a
href="http://beerpla.net/2009/06/21/hidden-features-of-perl-php-javascript-c-c-c-java-ruby-python-and-others-collection-of-incredibly-useful-lists/" rel="bookmark" title="June 21, 2009">Hidden Features Of Perl, PHP, Javascript, C, C++, C#, Java, Ruby, Python, And Others [Collection Of Incredibly Useful Lists]</a></li></ul><p><a
class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fbeerpla.net%2F2009%2F02%2F12%2Fhow-to-fight-clickjacking-using-the-recent-twitter-hijacking-as-an-example%2F&amp;title=How%20To%20Fight%20Clickjacking%20%28Using%20The%20Recent%20Twitter%20Hijacking%20As%20An%20Example%29" id="wpa2a_10"><img
src="http://beerpla.net/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded> <wfw:commentRss>http://beerpla.net/2009/02/12/how-to-fight-clickjacking-using-the-recent-twitter-hijacking-as-an-example/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> </channel> </rss>
