<?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>Mozilla Web Development &#187; security</title>
	<atom:link href="http://blog.mozilla.com/webdev/tag/security/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.mozilla.com/webdev</link>
	<description>Everybody Likes Ninjas</description>
	<lastBuildDate>Wed, 01 Feb 2012 16:41:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Behind the Scenes of the Plugin Check Page</title>
		<link>http://blog.mozilla.com/webdev/2010/05/14/behind-the-scenes-of-the-plugin-check-page/</link>
		<comments>http://blog.mozilla.com/webdev/2010/05/14/behind-the-scenes-of-the-plugin-check-page/#comments</comments>
		<pubDate>Fri, 14 May 2010 20:30:38 +0000</pubDate>
		<dc:creator>Austin King</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/webdev/?p=981</guid>
		<description><![CDATA[As noted on our security blog, we’ve just pushed out a major update to the plugin check page and service. The two core ideas are: Groundwork for a plugin directory Cross browser plugin checking The Backend Les Orchard has created a backend to the plugin finder service. We’ve added another input to the call named [...]]]></description>
			<content:encoded><![CDATA[<p>As noted on our <a href="http://blog.mozilla.com/security/2010/05/11/plugin-check-for-everyone/">security blog</a>, we’ve just pushed out a major update to the plugin check page and service.<br />
<a href="http://blog.mozilla.com/webdev/files/2010/05/CrossBrowserScreenshot.jpg"><img src="http://blog.mozilla.com/webdev/files/2010/05/CrossBrowserScreenshot-300x158.jpg" alt="" title="Cross Browser Support" width="300" height="158" class="alignright size-medium wp-image-1002" style="margin-right: 15px;" /></a><br />
The two core ideas are:</p>
<ul>
<li>Groundwork for a plugin directory</li>
<li>Cross browser plugin checking</li>
</ul>
<h3 style="clear:right">The Backend</h3>
<p>Les Orchard has <a href="http://blog.mozilla.com/webdev/2010/01/08/rebuilding-the-plugin-directory/"> created a backend</a> to the plugin finder service. We’ve added another input to the call named ‘detection’ which will allow us more flexibility in how we match known releases to OS / Product / Version / Plugin / Plugin Version combos. More news at 11, but he’s built the core pieces for a self-service plugin release application.</p>
<h3>The Frontend</h3>
<p>We updated the JavaScript client to support ‘<strong>modern browsers</strong>’ as well as IE. </p>
<h4>But IE 8 is a modern browser!</h4>
<p>Hmm, well it doesn’t have a <code>navigator.plugins object</code>. Other popular and recently released desktop browsers *do* have this feature. Heck, even some phone&#8217;s browsers have it.</p>
<p><em>Breaking News:</em> The platform preview of IE 9 has a working <code>navigator.plugins</code> object! So IE 9 fits the modern browser category&#8230; <strong>Congrats to the IE 9 team</strong>! We&#8217;ll make sure the page works by the time IE 9 ships, filed <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=566003">Bug#566003</a>.</p>
<h3>Cross Browser Flavors</h3>
<p>Our plugin detection uses one of three strategies:</p>
<ol>
<li>Strategy 1) <strong>Iterate</strong> the plugins objects and parse a version string out of the description or name</li>
<li>Strategy 2) <strong>Iterate</strong> the plugins objects and use the ‘version’ property</li>
<li>Strategy 3) Instantiate <strong>well-known</strong> plugins and test their version via the <a href="http://www.pinlady.net/PluginDetect/">pinlady.net</a> version detection library.</li>
</ol>
<p>If your goal is to protect as many users from as many known plugin vulnerabilities as possible&#8230; Strategy 3 doesn’t scale. Strategies 1 and 2 are dynamic and (in the best case) plugin agnostic. As new plugins come onto the market, the plugin finder service has to be updated, but no new code has to be written and shipped.</p>
<p>This is why IE plugin detection <a href="http://www.mozilla.com/en-US/plugincheck/more_info.html">is limited</a>.</p>
<p>Strategy 2 is the cleanest&#8230; and only supported by Firefox 3.6+. We would be pleased as punch if other browser vendors would create a version property. The Plugin Check page and other pieces of code that do plugin detection, will become more accurate.</p>
<p>We’re really excited about supporting all browsers and that is what Strategy 1 buys us. When a vendor has put a useful version number in the description or name, then it&#8217;s possible for our page to help Safari, Opera, or Chrome users understand their plugin versions better.</p>
<h4>Geeky Aside:</h4>
<p>Fly in the ointment, even for Firefox 3.6+ we currently will use methods #1 and #2 depending on what’s best for detecting the most accurate version for the most popular plugins. Why is nothing every simple?</p>
<h3>What can browser vendors do?</h3>
<p>Please implement the <code>navigator.plugins[x].version</code> property. This exposes an explicit plugin version number from the vendor.</p>
<h4>Why?</h4>
<p>It will keep your users safer. This and other security tools can detect vulnerable versions easier and more accurately.</p>
<h3>What can plugin vendors do?</h3>
<p>At a minimum, please put your full version number in the plugin description field.  Also make this as exact as possible, include the build number etc. 1.1.2.9282 is better than 1.1.2. Bonus points, expose your version numbers in the version property, even on Linux builds of your plugin.</p>
<h4>Why?</h4>
<ul>
<li>Keep your users safe</li>
<li>Improve your lastest version uptake</li>
<li>Keep users coming back to your distribution channel</li>
<li>Reduce your support costs</li>
</ul>
<h4>What&#8217;s next?</h4>
<p>We&#8217;ve built the plumbing and populated it with some popular plugins versions. Our next major release will be focused on building a self-service plugin release management app, so that vendors can populate the data for the backend API.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/webdev/2010/05/14/behind-the-scenes-of-the-plugin-check-page/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Plugin Checker Launched</title>
		<link>http://blog.mozilla.com/webdev/2009/10/13/plugin-checker-launched/</link>
		<comments>http://blog.mozilla.com/webdev/2009/10/13/plugin-checker-launched/#comments</comments>
		<pubDate>Tue, 13 Oct 2009 22:28:05 +0000</pubDate>
		<dc:creator>Mike Morgan</dc:creator>
				<category><![CDATA[Mozilla.com]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/webdev/?p=731</guid>
		<description><![CDATA[Today we launched a Plugin Checker to help people find and update their plugins. Why is this important to you? Crashes are the number one concern for Firefox users, and we are listening. At least 30% of all Firefox crashes are caused by third-party plugins. Many major security vulnerabilities exploit out of date plugins. Why [...]]]></description>
			<content:encoded><![CDATA[<p>Today we launched a <a href="http://www.mozilla.com/en-US/plugincheck/">Plugin Checker</a> to help people find and update their plugins.</p>
<p><a href="http://blog.mozilla.com/webdev/files/2009/10/nurse.png"><img src="http://blog.mozilla.com/webdev/files/2009/10/nurse.png" alt="smiling nurse" width="226" height="215" class="alignright size-full wp-image-754" /></a></p>
<h2>Why is this important to you?</h2>
<ul>
<li>Crashes are the number one concern for Firefox users, and we are listening.</li>
<li>At least 30% of all Firefox crashes are caused by third-party plugins.</li>
<li>Many major security vulnerabilities exploit out of date plugins.</li>
</ul>
<h2>Why is this important to Mozilla?</h2>
<p>Increasing awareness about plugins makes the web better, and that&#8217;s <a href="http://www.mozilla.org/about/manifesto">our mission</a>.</p>
<ul>
<li>We want the web to be safer.</li>
<li>We want the web to be less crashy.</li>
<li>We want to help everyone &#8212; not just Firefox users &#8212; to address the plugin problem. (though admittedly it doesn&#8217;t fully work with all browsers yet, it will)</li>
</ul>
<h2>What did we do?</h2>
<p>The plugin checker has three components:</p>
<ul>
<li>The Server: <a href="https://wiki.mozilla.org/PFS2">Plugin Finder Service (PFS2)</a></li>
<li>The Javascript: <a href="http://github.com/ozten/Perfidies-of-the-Web/tree">Perfides</a></li>
<li>The Web Page: <a href="http://www.mozilla.com/en-US/plugincheck/">mozilla.com</a></li>
</ul>
<p> The end result is actually pretty simple &#8212; and that&#8217;s how it needs to be.  Here&#8217;s your plugins, and here&#8217;s their statuses:</p>
<p><a href="http://blog.mozilla.com/webdev/files/2009/10/flash_quicktime.png"><img src="http://blog.mozilla.com/webdev/files/2009/10/flash_quicktime.png" alt="flash_quicktime" title="Example showing Flash and Quicktime plugin statuses"  width="660" height="159" class="aligncenter size-full wp-image-732" /></a></p>
<p>Putting it all together, we reach a workflow similar to the graph below.  Our goal is to query a central database that contains plugin information and inform users about the status of their plugins.  This was built so it could be used to support Firefox directly in the future.</p>
<p><a href="http://blog.mozilla.com/webdev/files/2009/10/pfs-workflow.png"><img src="http://blog.mozilla.com/webdev/files/2009/10/pfs-workflow.png" alt="pfs-workflow" title="this shows that the web service can power both a web front-end or an integrated client service" width="537" height="574" class="aligncenter size-full wp-image-740" /></a></p>
<h2>What will happen next?</h2>
<p>The three components above are a good start, but together we can do more.</p>
<ul>
<li><a href="http://theunfocused.net/2009/10/06/firefox-3-6-knows-when-your-plugins-are-out-of-date/">Integrate this experience with the Firefox client</a>.  Firefox will identify vulnerable plugins and help you update them.</li>
<li>Create a self-service panel for vendors to update their plugin info as new releases come out.</li>
<li>Create an open directory for all plugin information (sort of like <a href="http://plugindoc.mozdev.org/">Plugindoc</a> but dynamic)</li>
<li>Evangelize plugin detection via an embeddable widget &#8212; get it out on WordPress, etc.</li>
<li>Integrate with our <a href="http://crash-stats.mozilla.com/">crash reporting system</a> so we have a report card/dashboard for which plugins are most crashy</li>
</ul>
<h2>How can you help?</h2>
<p>This entire project is open source.  You can work on any of these components to help contribute to the effort:</p>
<ul>
<li><a href="http://svn.mozilla.org/projects/pfs2/trunk/">View the server code for PFS2</a></li>
<li><a href="http://github.com/ozten/Perfidies-of-the-Web">View the client code for Perfides</a></li>
<li><a href="https://bugzilla.mozilla.org/enter_bug.cgi?product=Websites&#038;component=www.mozilla.com">File a bug if you find one</a></li>
<li><a href="http://spreadsheets.google.com/viewform?formkey=dGpKQkNuNkNQNjF4RW1FT08yRHRqMWc6MA..">Tell us about plugins we don&#8217;t know about</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/webdev/2009/10/13/plugin-checker-launched/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>New PluginCheck Page Needs Your Help</title>
		<link>http://blog.mozilla.com/webdev/2009/10/02/upyourplug-needs-your-help/</link>
		<comments>http://blog.mozilla.com/webdev/2009/10/02/upyourplug-needs-your-help/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 23:42:57 +0000</pubDate>
		<dc:creator>Austin King</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/webdev/?p=662</guid>
		<description><![CDATA[Following up on the Flash Detection on the What&#8217;s New page, we are developing an upgrade to the Plugin Finder Service (PFS2). We could use your help! Please hit our testing server&#8217;s Plugin Check. We will be able to capture information about plugins and help fill-out the PFS2 database. See an issue? Look through current [...]]]></description>
			<content:encoded><![CDATA[<p>Following up on the <a href="http://en-us.www.mozilla.com/en-US/firefox/3.5.3/whatsnew/">Flash Detection</a> on the What&#8217;s New page, we are developing an upgrade to the Plugin Finder Service (<a href="https://wiki.mozilla.org/PFS2">PFS2</a>).</p>
<p>We could use your help! Please hit our testing server&#8217;s <a href="http://www-trunk.stage.mozilla.com/en-US/plugincheck/">Plugin Check</a>. We will be able to capture information about plugins and help fill-out the PFS2 database. See an issue? Look through <a href="https://bugzilla.mozilla.org/buglist.cgi?query_format=advanced&#038;short_desc_type=allwordssubstr&#038;short_desc=&#038;product=addons.mozilla.org&#038;component=Plugins&#038;long_desc_type=substring&#038;long_desc=&#038;bug_file_loc_type=allwordssubstr&#038;bug_file_loc=&#038;status_whiteboard_type=allwordssubstr&#038;status_whiteboard=&#038;keywords_type=allwords&#038;keywords=&#038;bug_status=UNCONFIRMED&#038;bug_status=NEW&#038;bug_status=ASSIGNED&#038;bug_status=REOPENED&#038;bug_status=RESOLVED&#038;bug_status=VERIFIED&#038;bug_status=CLOSED&#038;resolution=FIXED&#038;resolution=INVALID&#038;resolution=WONTFIX&#038;resolution=DUPLICATE&#038;resolution=WORKSFORME&#038;resolution=INCOMPLETE&#038;resolution=EXPIRED&#038;resolution=MOVED&#038;resolution=---&#038;emailassigned_to1=1&#038;emailtype1=exact&#038;email1=&#038;emailassigned_to2=1&#038;emailreporter2=1&#038;emailqa_contact2=1&#038;emailtype2=exact&#038;email2=&#038;bugidtype=include&#038;bug_id=&#038;votes=&#038;chfieldfrom=&#038;chfieldto=Now&#038;chfieldvalue=&#038;cmdtype=doit&#038;order=Reuse+same+sort+as+last+time&#038;field0-0-0=noop&#038;type0-0-0=noop&#038;value0-0-0=">current bugs</a> and leave feedback in <a href="https://bugzilla.mozilla.org/enter_bug.cgi?product=addons.mozilla.org&amp;component=Plugins">Bugzilla</a>.<br />
<div id="attachment_700" class="wp-caption alignnone" style="width: 670px"><img src="http://blog.mozilla.com/webdev/files/2009/10/Plugin-Detection.jpg" alt="Screenshot of plugin detection" title="Plugin-Detection" width="660" height="446" class="size-full wp-image-700" /><p class="wp-caption-text">Screenshot of plugin detection</p></div><br />
If you&#8217;re a Plugin Vendor, please put the version of your plugin into the name or description field of your plugin. For example, since they don&#8217;t expose this information, the following very popular plugins cannot have their minor versions accurately detected in Firefox with JavaScript alone:</p>
<ul>
<li>Adobe Acrobat</li>
<li>Windows Media Player Plug-in</li>
<li>RealPlayer (on Mac only, Windows exposes version information)</li>
</ul>
<p>Some plugins don&#8217;t expose a good version number in the description, but can be detected by instantiating the plugin. We&#8217;re using <a href="http://www.pinlady.net/PluginDetect/">Eric Gerds&#8217; PluginDetect</a> for this type of plugin.</p>
<p>On the other hand, kudos go to Microsoft&#8217;s Silverlight team for the following information: name=&#8221;Silverlight Plug-In&#8221; <strong>description=&#8221;3.0.40818.0&#8243;</strong>. That&#8217;s exactly what we need to identify when a Plugin has fallen out of date.  If a vulnerability is discovered and published against 3.0.40818.0, we can alert the user to pick up the newest version.</p>
<p>It&#8217;s very fast and easy for us to detect your release version, when the proper information is provided by the plugin. Doing so is a win for you and your users. We&#8217;ll be encouraging Firefox users to keep their plugins updated to the latest and greatest. This means better distribution and lower support costs for you. We&#8217;re contacting many vendors right now to make this happen. </p>
<p>Firefox 3.6 is going to be adding enhancements to the way Plugin information is exposed to JavaScript. We&#8217;re looking forward to how this will simplify this task.</p>
<p>Interested in the code under development? Check out <a href="http://svn.mozilla.org/projects/pfs2/trunk/">PFS2 server</a>, <a href="http://github.com/ozten/Perfidies-of-the-Web/tree">PFS2 client</a> and of course <a href="http://svn.mozilla.org/projects/mozilla.com/">Mozilla.com</a> where it will eventually live.</p>
<p><strong>Update 10/3 @12:50 PDT:</strong> Thanks to everyone who has filed bugs! Additionally, here is the list of Plugin states, copy, and links. This is going to change, based on your feedback, but I think it will help the discussion.</p>
<table border="1" cellspacing="0">
<thead>
<tr>
<th>Status</th>
<th>Copy</th>
<th>Button</th>
<th>Link</th>
</tr>
</thead>
<tbody>
<tr>
<td>Unknown Plugin</td>
<td>N/A we don&#8217;t display anything</td>
<td>N/A</td>
<td>N/A</td>
</tr>
<tr>
<td>Current</td>
<td>You&#8217;re Safe</td>
<td>Learn More</td>
<td>Vendor URL</td>
</tr>
<tr>
<td>Old or Unknown Release</td>
<td>Potentially Vulnerable</td>
<td>Update</td>
<td>Vendor URL</td>
</tr>
<tr>
<td>Old with Known Exploit</td>
<td>Update Now</td>
<td>Vulnerable</td>
<td>Vendor URL</td>
</tr>
<tr>
<td>Current with Known Exploit</td>
<td>Vulnerable No Fix</td>
<td>Disable Now</td>
<td>#disable-now</td>
</tr>
</tbody>
</table>
<p>I think the consensus is that the copy for Current and Old send the wrong message.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/webdev/2009/10/02/upyourplug-needs-your-help/feed/</wfw:commentRss>
		<slash:comments>33</slash:comments>
		</item>
	</channel>
</rss>

