<?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>Spacebug Open Source Initiative &#187; CakePHP</title>
	<atom:link href="http://spacebug.com/category/cakephp/feed/" rel="self" type="application/rss+xml" />
	<link>http://spacebug.com</link>
	<description>Keeping Software Simple, Open and Pragmatic.</description>
	<lastBuildDate>Mon, 26 Sep 2011 20:07:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>How to Make Web Pages Fit and Scale Nicely on Android Web Browser</title>
		<link>http://spacebug.com/how-to-make-web-pages-fit-and-scale-nicely-on-android-web-browser/</link>
		<comments>http://spacebug.com/how-to-make-web-pages-fit-and-scale-nicely-on-android-web-browser/#comments</comments>
		<pubDate>Fri, 11 Mar 2011 15:50:35 +0000</pubDate>
		<dc:creator>Amir Shevat</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://spacebug.com/?p=572</guid>
		<description><![CDATA[I just released an Android version of my Cats Idol pet project &#8211; it lets you browse&#160;through photos of cats submitted by other&#160;people, rate the cats, and set the photos as your Android wallpaper. One of the things I wanted to do was to provide users with the ability to upload photos straight from their [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>I just released an <a href="http://www.androlib.com/android.application.com-catsidol-xqpBB.aspx">Android version of my Cats Idol pet project</a> &#8211; it lets you browse&nbsp;through photos of cats submitted by other&nbsp;people, rate the cats, and set the photos as your Android wallpaper.</p>
<p>One of the things I wanted to do was to provide users with the ability to upload photos straight from their phone. I decided that a web interface would be the easiest way to go at it. So, my application has a button called &#8220;Add cat&#8221; that launches the Android web browser with a URL of my server-side&nbsp;CakePHP-based upload HTML form.<a href="http://spacebug.com/wp-content/uploads/2011/03/zoom_out.jpg"><img class="size-medium wp-image-573 alignright" style="margin-left: 50px; margin-right: 50px;" title="zoom_out" src="http://spacebug.com/wp-content/uploads/2011/03/zoom_out-202x300.jpg" alt="" width="202" height="300"></a></p>
<h3> The Problem</h3>
<p>Then I ran in to a problem -&nbsp; The HTML upload page was &#8220;zoomed out&#8221; on android, seemed like the&nbsp;browser did not scale the HTML properly and you needed a lot of zooming in&nbsp;order to work with it.</p>
<p>I&nbsp;thought this was a problem with my android code but found that it was actually a server-side issue.</p>
<p>After some digging, I found a solution to this issue.</p>
<h3> The Solution</h3>
<p>Adding these two Meta Tags in the head Tag of the HTML page solved this issue:</p>
<p><strong></p>
<pre><code><strong>&lt;meta name="HandheldFriendly" content="true" /&gt;
&lt;meta name="viewport"
          content="width=device-width,
                 height=device-height, user-scalable=no" /&gt;</strong>

</code></pre>
<p></strong></p>
<p><a href="http://spacebug.com/wp-content/uploads/2011/03/screenshot2.jpg"><img class="alignright size-medium wp-image-579" style="margin-left: 50px; margin-right: 50px;" title="screenshot2" src="http://spacebug.com/wp-content/uploads/2011/03/screenshot2-200x300.jpg" alt="" width="200" height="300"></a><br />
In CakePHP I added these Meta Tags to the mobile.ctp layout so it will affect all pages using the mobile layout.</p>
<p>Using&nbsp;these Meta tags fixed the way Android showed the HTML web page &#8211; The page looks zoomed-in and fits the screen very nicely:</p>
<div class="shr-publisher-572"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fspacebug.com%2Fhow-to-make-web-pages-fit-and-scale-nicely-on-android-web-browser%2F' data-shr_title='How+to+Make+Web+Pages+Fit+and+Scale+Nicely+on+Android+Web+Browser'></a><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fspacebug.com%2Fhow-to-make-web-pages-fit-and-scale-nicely-on-android-web-browser%2F' data-shr_title='How+to+Make+Web+Pages+Fit+and+Scale+Nicely+on+Android+Web+Browser'></a><a class='shareaholic-fbsend' data-shr_href='http%3A%2F%2Fspacebug.com%2Fhow-to-make-web-pages-fit-and-scale-nicely-on-android-web-browser%2F'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://spacebug.com/how-to-make-web-pages-fit-and-scale-nicely-on-android-web-browser/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>CakePHP Ajax/JSON calls fail? Try turning debug output off</title>
		<link>http://spacebug.com/cakephp-ajax-json-calls-fail-try-turning-debug-output-off/</link>
		<comments>http://spacebug.com/cakephp-ajax-json-calls-fail-try-turning-debug-output-off/#comments</comments>
		<pubDate>Mon, 17 May 2010 03:34:17 +0000</pubDate>
		<dc:creator>Amir Shevat</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://spacebug.com/wp/?p=383</guid>
		<description><![CDATA[CakePHP is a rapid development framework for PHP that provides an extensible architecture for developing, maintaining, and deploying applications. CakePHP provides several Ajax features, but if cakephp debug is not turned off, most Ajax calls and JSON encoding would fail. The problem / symptoms When calling a server side cakephp method through Ajax calls usualy [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><a href="http://spacebug.com/sites/default/files/ajax_2.jpg"><img title="ajax" style="border-right: 0px; border-top: 0px; display: inline; margin-left: 0px; border-left: 0px; margin-right: 0px; border-bottom: 0px" height="189" alt="ajax" src="http://spacebug.com/sites/default/files/ajax_thumb.jpg" width="240" align="right" border="0"> CakePHP</a> is a rapid development framework for PHP that provides an extensible architecture for developing, maintaining, and deploying applications. CakePHP provides several Ajax features, but if cakephp debug is not turned off, most Ajax calls and JSON encoding would fail.</p>
<h4>The problem / symptoms </h4>
<p>When calling a server side cakephp method through Ajax calls usualy in combination with JSON encoding, the call fails. The server returns HTTP 200 and everything seems fine, but the Ajax call just doesn&#8217;t work.</p>
<p><span id="more-383"></span></p>
<h4>Diagnostic</h4>
<p>By default, cakePHP adds debug information to it’s HTML output. This debug information is very useful, but also very disruptive to Ajax calls and JSON parsing.</p>
<h4>The solution </h4>
<p>Turn debug off by setting it to 0 &#8211; There are two ways you can do that:</p>
<p> 1) For the entire cakephp application – go to core.php under the app/config folder and replace this line “Configure::write(&#8216;debug&#8217;, 2);” with this line “Configure::write(&#8216;debug&#8217;, 0);”</p>
<p> 2) For only a specific method call &#8211; add this line to your relevant method in the controller &#8211; </p>
<p>function yourAjaxCallMethod() {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Configure::write(&#8216;debug&#8217;, 0);
<p>…
<p>}</p>
<div class="shr-publisher-383"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fspacebug.com%2Fcakephp-ajax-json-calls-fail-try-turning-debug-output-off%2F' data-shr_title='CakePHP+Ajax%2FJSON+calls+fail%3F+Try+turning+debug+output+off'></a><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fspacebug.com%2Fcakephp-ajax-json-calls-fail-try-turning-debug-output-off%2F' data-shr_title='CakePHP+Ajax%2FJSON+calls+fail%3F+Try+turning+debug+output+off'></a><a class='shareaholic-fbsend' data-shr_href='http%3A%2F%2Fspacebug.com%2Fcakephp-ajax-json-calls-fail-try-turning-debug-output-off%2F'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://spacebug.com/cakephp-ajax-json-calls-fail-try-turning-debug-output-off/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CakeOTP 1.1 &#8211; User Registration with One Time Password for CakePHP Released</title>
		<link>http://spacebug.com/cakeotp_1-1-user_registration_with_one_time_password_for_cakephp_released/</link>
		<comments>http://spacebug.com/cakeotp_1-1-user_registration_with_one_time_password_for_cakephp_released/#comments</comments>
		<pubDate>Tue, 20 Apr 2010 14:05:08 +0000</pubDate>
		<dc:creator>Amir Shevat</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[New Release]]></category>
		<category><![CDATA[Open source]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[Authentication]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[<img style="border:0px" border=0 align="right" src="http://spacebug.com/img/release.png">

CakeOTP is a reference implementation of User Registration with a <a href='http://spacebug.com/tableless_secure_one_time_password'>secure, table-less and expirable implementation of One Time Password</a> for the popular <a href="http://cakephp.org/">CakePHP</a> development framework.

<h4>New in CakeOTP release 1.1</h4>
]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><img style="border: 0px;" src="http://spacebug.com/img/release.png" border="0" alt="" align="right" /></p>
<p>CakeOTP is a reference implementation of User Registration with a <a href="http://spacebug.com/tableless_secure_one_time_password">secure, table-less and expirable implementation of One Time Password</a> for the popular <a href="http://cakephp.org/">CakePHP</a> development framework.</p>
<h4>New in CakeOTP release 1.1</h4>
<p>1) Automatic login process, after the account activation- The user is automatically logged into the site and is redirected to an internal page, immediately after activating his/her account.<br />
2) User email validation.</p>
<p>Download this release <a href="http://spacebug.com/cakeotp/release/1.1/cakeotp.zip">here</a>.</p>
<p>Checkout the <a href="http://spacebug.com/cakeotp/demo/">Online Demo</a>, <a href="http://spacebug.com/CakeOTP-One_Time_Password_Reference_Implementation_for_CakePHP">project page</a> and <a href="http://spacebug.com/CakeOTP-CakePHP_One_Time_Password-Getting_Started">getting started page</a>.</p>
<div class="shr-publisher-94"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fspacebug.com%2Fcakeotp_1-1-user_registration_with_one_time_password_for_cakephp_released%2F' data-shr_title='CakeOTP+1.1+-+User+Registration+with+One+Time+Password+for+CakePHP+Released'></a><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fspacebug.com%2Fcakeotp_1-1-user_registration_with_one_time_password_for_cakephp_released%2F' data-shr_title='CakeOTP+1.1+-+User+Registration+with+One+Time+Password+for+CakePHP+Released'></a><a class='shareaholic-fbsend' data-shr_href='http%3A%2F%2Fspacebug.com%2Fcakeotp_1-1-user_registration_with_one_time_password_for_cakephp_released%2F'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://spacebug.com/cakeotp_1-1-user_registration_with_one_time_password_for_cakephp_released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to: Automatic User Login in CakePHP</title>
		<link>http://spacebug.com/automatic-user-login-in-cakephp/</link>
		<comments>http://spacebug.com/automatic-user-login-in-cakephp/#comments</comments>
		<pubDate>Tue, 13 Apr 2010 19:27:42 +0000</pubDate>
		<dc:creator>Amir Shevat</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Open source]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Sometimes you need to enable silent (implicit) login for your users. A good example of this would be this - after a registration process, you would want to automatically login the user, rather then having him retype the user name and password.

In <a href="http://cakephp.org/">CakePHP</a> there is a simple method in the Auth components that lets you login on the user's behave.

Here is how it is done:
]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Sometimes you need to enable silent (implicit) login for your users. A good example of this would be this &#8211; after a registration process, you would want to automatically login the user, rather then having him retype the user name and password.</p>
<p>In <a href="http://cakephp.org/">CakePHP</a> there is a simple method in the Auth components that lets you login on the user&#8217;s behave.</p>
<p>Here is how it is done:</p>
<p><code><br />
// assuming $password is the clear text password<br />
$this->data["User"]["password"] = $this->Auth->password($password);<br />
$this->data["User"]["username"] = $username;</p>
<p>// do the login<br />
$login = $this->Auth->login($this->data);</p>
<p>// $login is true is login went well.<br />
// now we can redirect the user to any page:<br />
if($login){<br />
   $this->redirect(array('controller' => "anycontroller",<br />
          'action' => "any_secure_action", null));<br />
}</p>
</pre>
<p>This will be implemented in the next <a href="http://spacebug.com/CakeOTP-One_Time_Password_Reference_Implementation_for_CakePHP">CakeOTP</a> release.</p>
<div class="shr-publisher-92"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fspacebug.com%2Fautomatic-user-login-in-cakephp%2F' data-shr_title='How+to%3A+Automatic+User+Login+in+CakePHP'></a><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fspacebug.com%2Fautomatic-user-login-in-cakephp%2F' data-shr_title='How+to%3A+Automatic+User+Login+in+CakePHP'></a><a class='shareaholic-fbsend' data-shr_href='http%3A%2F%2Fspacebug.com%2Fautomatic-user-login-in-cakephp%2F'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://spacebug.com/automatic-user-login-in-cakephp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Security issue in CakePHP code documentation</title>
		<link>http://spacebug.com/security_issue_in_cakephp_code_documentation/</link>
		<comments>http://spacebug.com/security_issue_in_cakephp_code_documentation/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 12:37:05 +0000</pubDate>
		<dc:creator>Amir Shevat</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Open source]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Software development]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[I have been using <a href="http://cakephp.org">CakePHP</a> for a long time now and enjoy every second. It provides a productive, easy to use and well document  platform for PHP application. The key advantages for me are â€“ transparent OR mapping, a strong Model View Controller framework, and tons of extra utilities that make your life better.

I have came across a possible security issue in <a href="http://book.cakephp.org/view/396/authorize">one of cakePHP code examples</a>. This section of code is responsible to authorize or un-authorize clients access to a certain action (MVC flow)
<pre>
</pre>

<b>The major security rule this code is breaking is â€“ never ever have 'return true' as a default for an authorization method.</b>
]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>I have been using <a href="http://cakephp.org">CakePHP</a> for a long time now and enjoy every second. It provides a productive, easy to use and well document  platform for PHP application. The key advantages for me are &#8211; transparent OR mapping, a strong Model View Controller framework, and tons of extra utilities that make your life better.</p>
<p>I have came across a possible security issue in <a href="http://book.cakephp.org/view/396/authorize">one of cakePHP code examples</a>. This section of code is responsible to authorize or un-authorize clients access to a certain action (MVC flow)</p>
<pre>action == 'delete') {
            if ($this-&gt;Auth-&gt;user('role') == 'admin') {
                return true;
            } else {
                return false;
            }
        }

        return true;
    }
?&gt;
</pre>
<p><strong>The major security rule this code is breaking is &#8211; never ever have &#8216;return true&#8217; as a default for an authorization method.</strong><br />
<!--break--><span id="more-88"></span><br />
Security driven operations should always return &#8220;unauthorized&#8221; as a default value.  You should always take the white-list-approach to authorization methods, in other words you want to allow privileges to specific scenarios and block all other scenarios by default.</p>
<p>This is how this method should be implemented:</p>
<pre>action == 'delete') {
            if ($this-&gt;Auth-&gt;user('role') == 'admin') {
                return true;
            }
        }
	if ($this-&gt;action == 'view') {
                return true;
        }
	...
        return false;
    }
?&gt;
</pre>
<p>A good way to prove this is a safer implementation would be to think what will happen if we add a new  action (let&#8217;s call it &#8220;edit&#8221;) and let&#8217;s say we forget to rewrite the isAuthorized method.</p>
<ul>
<li> <strong>Original implementation</strong>:  The &#8216;edit&#8217; method would be accessible to any role in the system and the developer would have hard time discovering that he/she forgot to rewrite the isAuthorized method. This security hole might never be found until it is too late.</li>
<li> <strong>New implementation</strong>: The &#8216;edit&#8217; method will not be accessible to any role and the developer would immediately know that there is something he forgot to do.</li>
</ul>
<p>I have submitted the correction to the official CakePHP tutorial and hopefully they will amend the reference code shortly.</p>
<div class="shr-publisher-88"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fspacebug.com%2Fsecurity_issue_in_cakephp_code_documentation%2F' data-shr_title='Security+issue+in+CakePHP+code+documentation+'></a><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fspacebug.com%2Fsecurity_issue_in_cakephp_code_documentation%2F' data-shr_title='Security+issue+in+CakePHP+code+documentation+'></a><a class='shareaholic-fbsend' data-shr_href='http%3A%2F%2Fspacebug.com%2Fsecurity_issue_in_cakephp_code_documentation%2F'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://spacebug.com/security_issue_in_cakephp_code_documentation/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>CakeOTP 1.0 &#8211; Secure, Expirable, Table-less One Time Password for CakePHP Released</title>
		<link>http://spacebug.com/cakeotp_1-0-secure_expirable_table-less_one_time_password_for_cakephp/</link>
		<comments>http://spacebug.com/cakeotp_1-0-secure_expirable_table-less_one_time_password_for_cakephp/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 20:34:25 +0000</pubDate>
		<dc:creator>Amir Shevat</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Open source]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Software development]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[<img style="border:0px" border=0 align="right" src="http://spacebug.com/img/release.png">

CakeOTP is a <a href='http://spacebug.com/tableless_secure_one_time_password'>secure, table-less and expirable implementation of One Time Password</a> for the popular <a href="http://cakephp.org/">CakePHP</a> development framework.

A one-time password (OTP) is a password that is only valid for a single login session or transaction. It is commonly used in the internet for registration and password reminder process in which OTPs are provides to the user in a form of a link that the user uses to access in order to create/reset his password.

The problem is that most one-time password implementation involve maintaining additional database tables and batch process that handle the persistence and expire date of the one time password. This adds complexity and reduces performance.

CakeOTP is a simple and clean implementation of one time password. It reduces complexity by removing the redundant SQL calls and DB batch maintenance while still keeping the one time password secure and expirable.

Download this release <a href="http://spacebug.com/cakeotp/release/1.0/cakeotp.zip">here</a>.

Checkout the <a href="http://spacebug.com/cakeotp/demo/">Online Demo</a>, <a href="http://spacebug.com/CakeOTP-One_Time_Password_Reference_Implementation_for_CakePHP">project page</a> and <a href="http://spacebug.com/CakeOTP-CakePHP_One_Time_Password-Getting_Started">getting started page</a>.
]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><img style="border: 0px;" src="http://spacebug.com/img/release.png" border="0" alt="" align="right" /></p>
<p>CakeOTP is a <a href="http://spacebug.com/tableless_secure_one_time_password">secure, table-less and expirable implementation of One Time Password</a> for the popular <a href="http://cakephp.org/">CakePHP</a> development framework.</p>
<p>A one-time password (OTP) is a password that is only valid for a single login session or transaction. It is commonly used in the internet for registration and password reminder process in which OTPs are provides to the user in a form of a link that the user uses to access in order to create/reset his password.</p>
<p>The problem is that most one-time password implementation involve maintaining additional database tables and batch process that handle the persistence and expire date of the one time password. This adds complexity and reduces performance.</p>
<p>CakeOTP is a simple and clean implementation of one time password. It reduces complexity by removing the redundant SQL calls and DB batch maintenance while still keeping the one time password secure and expirable.</p>
<p>Download this release <a href="http://spacebug.com/cakeotp/release/1.0/cakeotp.zip">here</a>.</p>
<p>Checkout the <a href="http://spacebug.com/cakeotp/demo/">Online Demo</a>, <a href="http://spacebug.com/CakeOTP-One_Time_Password_Reference_Implementation_for_CakePHP">project page</a> and <a href="http://spacebug.com/CakeOTP-CakePHP_One_Time_Password-Getting_Started">getting started page</a>.<br />
<!--break--><br />
Feel free to post comments and questions.</p>
<div class="shr-publisher-86"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fspacebug.com%2Fcakeotp_1-0-secure_expirable_table-less_one_time_password_for_cakephp%2F' data-shr_title='CakeOTP+1.0+-+Secure%2C+Expirable%2C+Table-less+One+Time+Password+for+CakePHP+Released'></a><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fspacebug.com%2Fcakeotp_1-0-secure_expirable_table-less_one_time_password_for_cakephp%2F' data-shr_title='CakeOTP+1.0+-+Secure%2C+Expirable%2C+Table-less+One+Time+Password+for+CakePHP+Released'></a><a class='shareaholic-fbsend' data-shr_href='http%3A%2F%2Fspacebug.com%2Fcakeotp_1-0-secure_expirable_table-less_one_time_password_for_cakephp%2F'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://spacebug.com/cakeotp_1-0-secure_expirable_table-less_one_time_password_for_cakephp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CakeOTP  0.1 beta release &#8211; One Time Password Reference Implementation for CakePHP</title>
		<link>http://spacebug.com/cakeotp-0-1-beta-release-one-time-password-reference-implementation-for-cakephp/</link>
		<comments>http://spacebug.com/cakeotp-0-1-beta-release-one-time-password-reference-implementation-for-cakephp/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 21:05:16 +0000</pubDate>
		<dc:creator>Amir Shevat</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Open source]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Software development]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[<img style="border:0px" border=0 align="right" src="http://spacebug.com/img/release.png">
I have started to implement the <a href="http://spacebug.com/tableless_secure_one_time_password">algorithm</a> for tableless, secure One time password.

Here is a <a href="http://spacebug.com/cakeotp/demo/">link to the Demo</a>, and here is a <a href="http://spacebug.com/cakeotp/release/0.1/cakeotp.rar">link to the beta release</a>. 

The only thing you need to do other then <a href="http://book.cakephp.org/view/32/Installation">the regular cakePHP setup</a> is to create a user table (used by the <a href="http://book.cakephp.org/view/172/Authentication">CakePHP Auth component</a>):
]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><img style="border: 0px;" src="http://spacebug.com/img/release.png" border="0" alt="" align="right" /><br />
I have started to implement the <a href="http://spacebug.com/tableless_secure_one_time_password">algorithm</a> for tableless, secure One time password.</p>
<p>Here is a <a href="http://spacebug.com/cakeotp/demo/">link to the Demo</a>, and here is a <a href="http://spacebug.com/cakeotp/release/0.1/cakeotp.rar">link to the beta release</a>.</p>
<p>The only thing you need to do other then <a href="http://book.cakephp.org/view/32/Installation">the regular cakePHP setup</a> is to create a user table (used by the <a href="http://book.cakephp.org/view/172/Authentication">CakePHP Auth component</a>):<br />
<!--break--></p>
<pre>CREATE TABLE IF NOT EXISTS `users` (
  `id` int(11) NOT NULL auto_increment,
  `username` char(50) default NULL,
  `password` char(40) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=23 ;
</pre>
<p><span id="more-81"></span>Please note &#8211; This is still a beta release, just out of the oven &#8211; no documentation and extensive QA.</p>
<p>Any feedback or bug reports would be great.</p>
<div class="shr-publisher-81"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fspacebug.com%2Fcakeotp-0-1-beta-release-one-time-password-reference-implementation-for-cakephp%2F' data-shr_title='CakeOTP++0.1+beta+release+-+One+Time+Password+Reference+Implementation+for+CakePHP+'></a><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fspacebug.com%2Fcakeotp-0-1-beta-release-one-time-password-reference-implementation-for-cakephp%2F' data-shr_title='CakeOTP++0.1+beta+release+-+One+Time+Password+Reference+Implementation+for+CakePHP+'></a><a class='shareaholic-fbsend' data-shr_href='http%3A%2F%2Fspacebug.com%2Fcakeotp-0-1-beta-release-one-time-password-reference-implementation-for-cakephp%2F'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://spacebug.com/cakeotp-0-1-beta-release-one-time-password-reference-implementation-for-cakephp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

