<?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>Mike Gerwitz &#187; wordpress</title>
	<atom:link href="http://mikegerwitz.com/tags/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://mikegerwitz.com</link>
	<description>Free Software Hacker</description>
	<lastBuildDate>Wed, 04 Jan 2012 23:15:04 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>False Freedom in Wordpress Themes</title>
		<link>http://mikegerwitz.com/2010/02/06/false-freedom-in-wordpress-themes/</link>
		<comments>http://mikegerwitz.com/2010/02/06/false-freedom-in-wordpress-themes/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 01:09:08 +0000</pubDate>
		<dc:creator>Mike Gerwitz</dc:creator>
				<category><![CDATA[Free Software]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.mikegerwitz.com/?p=235</guid>
		<description><![CDATA[I&#8217;ve always had one major issue with some of the &#8220;free&#8221; Wordpress themes out there &#8211; the encryption of footer data. I&#8217;ve seen countless themes licensed under the GNU GPL that violate the very principles for which it exists.
Someone took the time to make their theme available under the GPL &#8211; that&#8217;s an excellent, noble [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve always had one major issue with some of the &#8220;free&#8221; Wordpress themes out there &#8211; the encryption of footer data. I&#8217;ve seen countless themes licensed under the <a href="http://www.gnu.org/licenses/gpl.html"><acronym title="GNU's Not Unix!">GNU</acronym> <acronym title="GNU General Public License">GPL</acronym></a> that violate the very principles for which it exists.</p>
<p>Someone took the time to make their theme available under the <acronym title="GNU General Public License">GPL</acronym> &#8211; that&#8217;s an excellent, noble thing. However, the encryption of footer data shows a complete lack of understanding of the philosophy behind <a href="http://www.gnu.org/philosophy/free-sw.html">Free Software</a> and the <acronym title="GNU General Public License">GPL</acronym>.</p>
<p>Freedom #1 states:</p>
<blockquote><p>The freedom to study how the program works, and change it to make it do what you wish (freedom 1). Access to the source code is a precondition for this.</p></blockquote>
<p>Here is an example footer from one of the themes I found (most of the content has been removed and what remains has been altered to (a) not throw anyone under a bus and (b) reduce the size of this post):</p>

<div class="wp_codebox_msgheader wp_codebox_hide"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p235code2'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p2352"><td class="code" id="p235code2"><pre class="php" style="font-family:monospace;"><a href="http://www.php.net/eval"><span style="color: #990000;">eval</span></a><span style="color: #009900;">&#40;</span><a href="http://www.php.net/gzinflate"><span style="color: #990000;">gzinflate</span></a><span style="color: #009900;">&#40;</span><a href="http://www.php.net/base64_decode"><span style="color: #990000;">base64_decode</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'gfE8f[...]T8='</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">/* WARNING: This file is protected by copyright law. To reverse engineer or decode this file is strictly prohibited. */</span>
<span style="color: #000088;">$o</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;ZnvJF[...]Mn=&quot;</span><span style="color: #339933;">;</span>eval<span style="color: #009900;">&#40;</span><a href="http://www.php.net/base64_decode"><span style="color: #990000;">base64_decode</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Xvxsbe0wO2V2YWwoYmFzZT[...]GxsfW9cnw==&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>return<span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Clearly, this is in violation of Freedom #1 for the following reasons:</p>
<ol>
<li><strong>The only way to gain access to the source code is to decrypt (reverse engineer) the above content.</strong> The fact that it is a very simple matter to do so is irrelevant &#8211; the source code should be clearly visible.</li>
<li><strong>There is a comment in the code that clearly states that any attempt to reverse engineer the code is illegal.</strong> This is in direct conflict with the <acronym title="GNU General Public License">GPL</acronym> &#8211; in fact, it&#8217;s completely incompatible. So that statement is actually negated by the license. You&#8217;re more than welcome to do so under terms of the <acronym title="GNU General Public License">GPL</acronym>.</li>
<li><strong>Since you do not have access to the original source code without decrypting the data, you are not free to modify it.</strong> Many try to decrypt the data and are unable to do so because they do are familiar with the <acronym title="PHP: Hypertext Preprocessor">PHP</acronym> language or are otherwise unable to figure out how to decrypt it. If you do decrypt the above, you will find that the majority of it is <acronym title="HyperText Markup Language">HTML</acronym>, with one call to <tt>wp_footer()</tt>. This means that, were it not encrypted, users would need only know <acronym title="HyperText Markup Language">HTML</acronym> to safely modify it.</li>
</ol>
<p>But those aren&#8217;t the only issues. There&#8217;s also some other considerations:</p>
<ol>
<li>The encrypted footer is <strong>7743 bytes</strong>. Decrypted, it is roughly <strong>996 bytes</strong>. That is a <em>huge</em> size difference &#8211; a lot of wasted bytes to secure the footer.</li>
<li>There are <strong>a great number of function calls in order to decrypt the footer</strong>. You can see some of them above, but the eval()&#8217;d code contains additional methods to decrypt further encrypted and obfuscated code. That&#8217;s unnecessary overhead. Not to mention that <strong>eval() in itself is very slow</strong>. <em>So, not only did the author prevent you from modifying the footer, you&#8217;re taking a performance hit because of it!</em></li>
</ol>
<p>I can understand why the author would want to encrypt the footer. They probably felt that, if they&#8217;re releasing their source code free of charge to the public, they should at least be allowed to keep their copyright notice in tact. And yes, they should be able to. In fact, the copyright notice should never be removed on <acronym title="GNU General Public License">GPL</acronym>&#8217;d code &#8211; it&#8217;s a legal requirement to keep it there. It is still the author&#8217;s work, and it is a copyrighted work, so the notice must remain in tact. But yes, people do remove it anyway, even though they shouldn&#8217;t.</p>
<p>But when an author takes the time to not only prevent me from modifying the source, but in doing so causes me to incur a performance hit, <em>and</em> on top of it licenses the theme under the <acronym title="GNU General Public License">GPL</acronym> &#8211; I see some very large ethical issues. Especially considering that all I wanted to do was add my own link, and its placement required being able to modify the encrypted <acronym title="HyperText Markup Language">HTML</acronym>.</p>
<p>I propose that all those who support free software boycott such themes and send a notice to the authors when they come by such themes (or send them a link to this post). Furthermore, do not let developers who try to restrict your freedom push you around. I do not propose you remove the copyright notice &#8211; in fact, I would never, ever suggest that someone do that; but I do propose that, if the theme is licensed under the <acronym title="GNU General Public License">GPL</acronym>, you decrypt the footer regardless of any notices that state you otherwise cannot. The license clearly states you have access to the source code, and if you are not given such access, the code either needs to be relicensed, or the developer needs to comply with its terms.</p>
<p>As there are also many themes out there that encrypt their data and are <em>not</em> licensed under the <acronym title="GNU General Public License">GPL</acronym> or other free software licenses, I&#8217;m not going to provide any methods of decrypting the data. I do not support proprietary software, but I also do not encourage license violations.</p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fmikegerwitz.com%2F2010%2F02%2F06%2Ffalse-freedom-in-wordpress-themes%2F&amp;linkname=False%20Freedom%20in%20Wordpress%20Themes">Share/Bookmark</a>]]></content:encoded>
			<wfw:commentRss>http://mikegerwitz.com/2010/02/06/false-freedom-in-wordpress-themes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
