<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title>PHPDeveloper.org</title>
    <link>http://www.phpdeveloper.org</link>
    <description>Up-to-the Minute PHP News, views and community</description>
    <language>en-us</language>
    <pubDate>Sun, 26 May 2013 04:24:12 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[P&aacute;draic Brady: Getting Ahead In Security By Watching The Neighbours]]></title>
      <guid>http://www.phpdeveloper.org/news/19061</guid>
      <link>http://www.phpdeveloper.org/news/19061</link>
      <description><![CDATA[<p>
In <a href="http://blog.astrumfutura.com/2013/01/getting-ahead-in-security-by-watching-the-neighbours/">his latest post</a> <i>Padraic Brady</i> talks some about the recent security issues that <a href="https://groups.google.com/forum/#!topic/rubyonrails-security/61bkgvnSGTQ/discussion">happened with Ruby on Rails</a> that allowed for remote code execution and how, if you use code blindly, you could be in for a similar fate.
</p>
<blockquote>
<p>
Code execution vulnerabilities are, by definition, hideous monsters. The ability for external inputs to enter an execution context (i.e. injecting or manipulating code that is executed on the server) can be difficult to spot through the haze of convenience that such machinations are often designed to deliver. In Rail's case, that convenience was to automatically cast data entries in XML or YAML inputs into Ruby types including, unfortunately, Symbols and Objects. 
</p>
<p>
These types of "buried" code execution vulnerabilities are still easy to locate in PHP, at least, because you are still restricted to normal code execution pathways in the absence of Ruby's dark magic, e.g. eval(), include(), require_once(), system() and, let's not forget, unserialize(). 
</p>
</blockquote>
<p>
He talks about how, if you're not careful with the code (third party libraries) that you use in your applications - or don't adhere to good security practices in your own - you could be vulnerable to a similar style of attack. After some investigation on his part, he discovered an issue related to this in the Symfony2 YAML parser (<a href="http://symfony.com/blog/security-release-symfony-2-0-22-and-2-1-7-released">now fixed</a> with a new release). 
</p>
<blockquote>
To summarise…

Pay attention to competing applications or frameworks - their problems may also be your problems. If you're worried about arbitrary code execution vulnerabilities then audit your code. You can even, as a sanity check, use grep to find uses of functions like eval(), unserialize(), etc and analyse where their parameters' might originate from. 
</blockquote>]]></description>
      <pubDate>Fri, 18 Jan 2013 11:53:52 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Lorna Mitchell: PHP 5.4 Benchmarks]]></title>
      <guid>http://www.phpdeveloper.org/news/18247</guid>
      <link>http://www.phpdeveloper.org/news/18247</link>
      <description><![CDATA[<p>
In <a href="http://www.lornajane.net/posts/2012/php-5-4-benchmarks">this quick post</a> to her site, <i>Lorna Mitchell</i> shares some of the benchmark results she found when doing some tests with the latest version of PHP - 5.4.
</p>
<blockquote>
Today I'm giving my first ever talk at OSCON - about PHP 5.4 (I'll also be giving my second ever talk at OSCON, about RESTful services; it's a busy day!). My talk includes some benchmarks which I thought I'd also share here. [...] This graph shows the performance of four versions of PHP (because the bench.php script that lives in the php source tree didn't appear until 5.1). The axis up the left is the time it took to run the benchmark script - so a smaller number is better news.
</blockquote>
<p>
You can see a <a href="https://chart.googleapis.com/chart?cht=bvs&chs=650x300&chma=30,30,30,30&chbh=50,20&chxt=x,y,x&chxl=0:|5.1.6|5.2.17|5.3.14|5.4.4|2:||PHP%20version&chd=t:3.97,4.1,2.8,2.25&chds=0,5&chxr=1,0,5&chco=991d66|c57fa3|bebcb9|52b4b2&chts=000000,24&chxs=0,,18|1,,18|2,,18">dramatic difference</a> between even just the latest in the PHP 5.3.x series in the 5.4 results. There's also a table with the details of each of her 10 executions of the "bench.php" script showing the results of the time spent to run the script on four different PHP versions.
</p>]]></description>
      <pubDate>Thu, 19 Jul 2012 09:54:42 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Dave Marshall's Blog: How I'm doing TDD with PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/18059</guid>
      <link>http://www.phpdeveloper.org/news/18059</link>
      <description><![CDATA[<p>
<I>Dave Marshall</i> has shared his method behind <a href="http://davedevelopment.co.uk/2012/06/06/how-im-doing-tdd.html">using test-driven development</a> in his recent development.
</p>
<blockquote>
I've been watching the Destroy All Software back catalog over the last couple of months and it's really inspired me to up my TDD game. I'm still fairly new to TDD, I've written tests for a long time, but never really let it lead my development…
</blockquote>
<p>
He talks about the testing tool <a href="http://phpunit.de/">he uses</a> and some of the ideals he keeps in mind when developing his tests. He also comments on testing isolation, speed of execution, the "fail fast" idea as well as integration testing and continuous integration.
</p>]]></description>
      <pubDate>Thu, 07 Jun 2012 11:31:51 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Gonzalo Ayuso's Blog: Checking the performance of PHP exceptions]]></title>
      <guid>http://www.phpdeveloper.org/news/17403</guid>
      <link>http://www.phpdeveloper.org/news/17403</link>
      <description><![CDATA[<p>
<i>Gonzalo Ayuso</i> has a new post to his blog today looking at <a href="http://gonzalo123.wordpress.com/2012/01/16/checking-the-performance-of-php-exceptions/">the performance of PHP exceptions</a> and how it could effect your application's overall speed.
</p>
<blockquote>
Sometimes we use exceptions to manage the flow of our scripts. I imagine that the use of exceptions must have a performance lack. Because of that I will perform a small benchmark to test the performance of one simple script throwing exceptions and without them.
</blockquote>
<p>
His (little) benchmarking scripts are included - both looping 100000 times, one throwing an exception and the other not. The results were pretty obvious - the memory usage was about the same but the speed was about ten times faster without the exceptions (in PHP 5.3). In PHP 5.4, however, the numbers were closer as far as time to run. Obviously, unless you make super heavy use of exceptions, you're not even going to come close to something like this (micro-optimization anyone?).
</p>]]></description>
      <pubDate>Tue, 17 Jan 2012 08:02:24 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Bence Eros' Blog: Request execution in Kohana 3.1]]></title>
      <guid>http://www.phpdeveloper.org/news/15667</guid>
      <link>http://www.phpdeveloper.org/news/15667</link>
      <description><![CDATA[<p>
In a new post to his blog, <i>Bence Eros</i> takes a look at <a href="http://erosbence.blogspot.com/2011/01/request-execution-in-kohana-31.html">the request execution path</a> that your Kohana-based application goes through each time a page request is made.
</p>
<blockquote>
Yesterday Kohana 3.1 RC1 has been <a href="http://forum.kohanaframework.org/discussion/7709/kohana-3.1-rc1/">announced</a> and <a href="https://github.com/kohana/kohana/tree/3.1-RC1">tagged</a>. I think now it's time to get familiar it. In this post I'm going to examine the refactored request execution workflow. Let's start with the bootstrap mechanism.
</blockquote>
<p>
He notes that most of the changes don't happen at the boostrap level. They're more behind the scenes than that, with changes in how it works within the HMVC design pattern. He talks about the changes in the Request objetct's constructor, factory and client methods. He also includes a full flow of a request for a sample welcome controller, describing the steps it falls into and a list of classes that the Request object may have used. 
</p>]]></description>
      <pubDate>Mon, 03 Jan 2011 08:40:36 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Adam Pullen's Blog: Execution Filters in Symfony]]></title>
      <guid>http://www.phpdeveloper.org/news/15176</guid>
      <link>http://www.phpdeveloper.org/news/15176</link>
      <description><![CDATA[<p>
<i>Adam Pullen</i> has posted a three-part series of articles looking at execution filters in <a href="http://symfony-project.org">Symfony</a> to modify/handle the request differently than just the normal GET or POST would pass through.
</p>
<blockquote>
Symfony is a powerful PHP Framework. One of the features that I have really taken advantage in my last project is request filtering or execution filtering. Request filters allow you to inspect the request before and after the main logic is executed. Why would one want to do this? There are many reasons to implement request filtering.
</blockquote>
<p>Here's his three articles:</p>
<ul>
<li><a href="http://www.finalconcept.com.au/article/view/symfony-execution-filters">Execution Filters</a>
<li><a href="http://www.finalconcept.com.au/article/view/symfony-execution-filters-add-objects-to-global-environment">Execution Filters:Add objects to global environment</a>
<li><a href="http://www.finalconcept.com.au/article/view/symfony-execution-filters-controlling-output">Execution Filters: Controlling output</a>
</ul>
<p>
You can find out more on their practical use in <a href="http://www.symfony-project.org/askeet/1_0/en/18">this section</a> of the Symfony site.
</p>]]></description>
      <pubDate>Thu, 23 Sep 2010 11:32:05 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Sameer Borate's Blog: Parallel cURL execution in PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/14907</guid>
      <link>http://www.phpdeveloper.org/news/14907</link>
      <description><![CDATA[<p>
New on his blog today <i>Sameer Borate</i> has a post looking at his method for making <a href="http://www.codediesel.com/php/parallel-curl-execution/">parallel connections with curl</a> based on <a href="http://github.com/petewarden/ParallelCurl">this library</a> from <i>Pete Wardens</i>.
</p>
<blockquote>
Most people use the 'easy' mode - in this mode when we issue multiple requests, the second request will not start until the first one is complete. This is known as synchronous execution, and this is the one we normally use. [...] In [multi] mode all requests can be handled in parallel or asynchronously. And it can be quite handy and time saving on many occasions. 
</blockquote>
<p>
He gives some code examples of how to use <a href="http://github.com/petewarden/ParallelCurl">the library</a> to simplify the curl connections and requests and pass the result off to a callback when it's done. His more practical example shows how to search for a set of terms on Google and return the results for output.
</p>]]></description>
      <pubDate>Thu, 05 Aug 2010 09:56:05 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Giorgio Sironi's Blog: Java versus PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/14364</guid>
      <link>http://www.phpdeveloper.org/news/14364</link>
      <description><![CDATA[<p>
In a new post to his blog <i>Giorgio Sironi</i> has a (more balanced) comparison of <a href="http://giorgiosironi.blogspot.com/2010/04/java-versus-php.html?">Java versus PHP</a> that them on topics like how they handle typing and their execution models.
</p>
<blockquote>
If you exclude C and its child C++, the <a href="http://langpop.com/">most popular programming languages</a> in the world are Java and PHP, which power most of the dynamic web. I have working experience with PHP and for academical purposes I am deepening my knowledge of Java, thus I'd like to point out similarities and key differences between these two languages. Every language has its pros and cons, so there's no absolute winner here.
</blockquote>
<p>
He briefly covers their history, java's static versus PHP's dynamic typing, how they both handle objects, their execution plans and how easy they are to deploy when it comes to general applications.
</p>]]></description>
      <pubDate>Fri, 16 Apr 2010 10:55:19 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPBuilder.com: Mitigate the Security Risks of PHP System Command Execution]]></title>
      <guid>http://www.phpdeveloper.org/news/13934</guid>
      <link>http://www.phpdeveloper.org/news/13934</link>
      <description><![CDATA[<p>
PHPBuilder.com has a new article from <i>Jason Gilmore</i> on <a href="http://www.phpbuilder.com/columns/Jason_Gilmore012810.php3">security in command-line applications</a> posted today and what you can do to help protect your scripts from unwanted system command access.
</p>
<blockquote>
In this tutorial, I'll show you how to securely execute a variety of system-based commands via a PHP script, demonstrating how to build web applications that can tightly integrate with both the operating system and third-party software.
</blockquote>
<p>
He mentions the proper filtering of input strings (user input), how it can protect your and your application as well as a few examples of using the PHP execution functions (like <a href="http://php.net/exec">exec</a> or <a href="http://php.net/passthru">passthru</a>) and how to apply the shell escaping commands (like <a href="http://www.php.net/escapeshellarg">escapeshellarg</a>) as a first layer of security.
</p>]]></description>
      <pubDate>Fri, 29 Jan 2010 09:47:19 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[ParticleTree Blog: PHP Quick Profiler]]></title>
      <guid>http://www.phpdeveloper.org/news/12397</guid>
      <link>http://www.phpdeveloper.org/news/12397</link>
      <description><![CDATA[<p>
Debugging resources being used by your script has always been a pain, and many developers have come up with their own libraries to handle the process. <i>Ryan Campbell</i> has his own entry in the category - the <a href="http://particletree.com/features/php-quick-profiler/">PHP Quick Profiler</a>.
</p>
<blockquote>
<p>
In our company, <a href="http://en.wikipedia.org/wiki/Code_review">code reviews</a> play an integral part in the development process for making quality software. We opt for a <a href="http://www.codinghorror.com/blog/archives/001229.html">mentor style approach</a> with Wufoo, where a developer works on a segment for a period of time and then passes it up to a more experienced developer for review. 
</p><p>
[...] To reduce this repetition of checking the same requirements over and over], we invested some time creating something we've called the PHP Quick Profiler-we call it PQP for short. It's a small tool (think Firebug for PHP) to provide profiling and debugging related information to developers without needing them to add a lot of programmatic overhead to their code.
</p>
</blockquote>
<p>
The <a href="http://particletree.com/features/php-quick-profiler/">post</a> gives several screenshots of the tool in action and code to get you up and running quickly. The Profiler can keep track of memory usage, "runaway" includes, execution time and database activity. There's also an <a href="http://particletree.com/examples/pqp/">online demo</a> so you can try it out yourself. 
</p>
<p>
<a href="http://particletree.com/mint/pepper/orderedlist/downloads/download.php?file=http%3A//particletree.com/files/pqp/pqp.zip">Here's the link</a> to the latest version's download.
</p>]]></description>
      <pubDate>Fri, 24 Apr 2009 07:57:01 -0500</pubDate>
    </item>
  </channel>
</rss>
