<?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>Sat, 18 May 2013 19:39:56 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[PHPMaster.com: Say Hello to Boris: A Better REPL for PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/19397</guid>
      <link>http://www.phpdeveloper.org/news/19397</link>
      <description><![CDATA[<p>
On PHPMaster.com today <i>Shameer C</i> has a new tutorial <a href="http://phpmaster.com/say-hello-to-boris-a-better-repl-for-php/">introducing you to Boris</a>, a REPL (read-eval-print loop tool) that's a bit more enhanced than the basic PHP interactive shell.
</p>
<blockquote>
As web developers, we know the importance of the JavaScript console provided by the browser in testing out code snippets. We don't need to write an entire HTML page and JavaScript code just to verify the functioning or logic of a small routine we wrote. Instead, we simply run the expressions in the console and immediately see the results. Similarly, a REPL (Read-Eval-Print Loop) is the console of a programming language in which we can write code line-by-line and see what it does. [...] PHP's REPL is very good in what it does, although it does have some limitations. [...] And so, Boris tries to solve these problems and other concerns as well. 
</blockquote>
<p>
He walks you through the installation (via a git clone and, later, through Composer) and shows how to run it as well as some sample output. He also shows how to make a custom command-line Boris runner and how to embed it into your application. His example of a tool that would benefit from this is a command-line web service client using Boris and Guzzle.
</p>]]></description>
      <pubDate>Tue, 02 Apr 2013 10:34:00 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Ars Technica:  Questions abound as malicious phpMyAdmin backdoor found on SourceForge site]]></title>
      <guid>http://www.phpdeveloper.org/news/18521</guid>
      <link>http://www.phpdeveloper.org/news/18521</link>
      <description><![CDATA[<p>
As Ars Technica reports, there was a <a href="http://arstechnica.com/security/2012/09/questions-abound-as-malicious-phpmyadmin-backdoor-found-on-sourceforge-site/">recent exploit</a> found on the SourceForce website's installation of <a href="http://www.phpmyadmin.net/home_page/index.php">phpMyAdmin</a> that allowed an attacker to POST anything to the site to be executed.
</p>
<blockquote>
Developers of phpMyAdmin warned users they may be running a malicious version of the open-source software package after discovering backdoor code was snuck into a package being distributed over the widely used SourceForge repository. The backdoor contains code that allows remote attackers to take control of the underlying server running the modified phpMyAdmin, which is a Web-based tool for managing MySQL databases. The PHP script is found in a file named server_sync.php, and it reads PHP code embedded in standard POST Web requests and then executes it. T
</blockquote>
<p>
The backdoor was somehow snuck into the code of phpMyAdmin on one of the mirrors and distributed to those downloading version 3.5.2.2. They think that the only downloads that were tainted with this issue were on the "cdnetworks" mirror site. You can find out more about the issue <a href="http://www.phpmyadmin.net/home_page/security/PMASA-2012-5.php">in this advisory</a> - be sure you check your installation for a "server_sync.php" file and remove it if it exists.
</p>]]></description>
      <pubDate>Wed, 26 Sep 2012 09:45:59 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Gonzalo Ayuso's Blog: How to use eval() without using eval() in PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/17665</guid>
      <link>http://www.phpdeveloper.org/news/17665</link>
      <description><![CDATA[<p>
In <a href="http://gonzalo123.wordpress.com/2012/03/12/how-to-use-eval-without-using-eval-in-php/">this new post</a> <i>Gonzalo Ayuso</i> talks about "using eval without using eval" in PHP applications - executing PHP code without having to use the <a href="http://php.net/eval">eval</a> function to do it.
</p>
<blockquote>
Yes I know. Eval() is evil. If our answer is to use <a href="http://php.net/manual/en/function.eval.php">eval()</a> function, we are probably asking the wrong question. When we see an eval() function all our coding smell's red lights start flashing inside our mind. Definitely it's a bad practice. But last week I was thinking about it. How can I eval raw PHP code without using the eval function, and I will show you my outcomes.
</blockquote>
<p>
He includes some sample code showing a basic script with a class and a loop executing normally, then an "eval version" that puts it all in a string and executes it. He offers a different method - not an ideal one since it requires being able to write to the local file system, but prevents the need for eval - writing the PHP code to a temporary file and using a "fake eval" to <a href="htttp://php.net/include">pull it in</a>.
</p>]]></description>
      <pubDate>Tue, 13 Mar 2012 10:09:52 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Evert Pot's Blog: Creating Streams from Strings in PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/11859</guid>
      <link>http://www.phpdeveloper.org/news/11859</link>
      <description><![CDATA[<p>
<i>Evert Pot</i> has a <a href="http://www.rooftopsolutions.nl/article/222">quick post</a> on a handy little topic - making streams from strings with PHP (see some of it in action on <a href="http://www.phpdeveloper.org/news/11857">Davey Shafik's blog</a>).
</p>
<blockquote>
There are situations where a string instead needs to be used, and for these purposes the data: stream wrapper is used. Initially I thought it was only possible to encode the actual string in base64, which I didn't like because of the added footprint. [...] Quickly checking out the rfc, it turns out that ';base64' can be omitted to just pass along the raw data, which makes a lot more sense in the context of PHP.
</blockquote>
<p>
His example takes in an example string and pushes it back out the other side after base64 encoding and decoding it. <i>Davey Shafik</i> <a href="http://www.phpdeveloper.org/news/11857">found a use</a> for it in avoiding an <a href="http://php.net/eval">eval</a> call.
</p>]]></description>
      <pubDate>Mon, 02 Feb 2009 12:58:50 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Davey Shafik's Blog: Avoiding EVAL()]]></title>
      <guid>http://www.phpdeveloper.org/news/11857</guid>
      <link>http://www.phpdeveloper.org/news/11857</link>
      <description><![CDATA[<p>
<i>Davey Shafik</i> has a <a href="http://pixelated-dreams.com/archives/232-avoiding-eval.html">helpful hint</a> for avoiding one of the worst functions to use in PHP - <a href="http://php.net/eval">eval</a>.
</p>
<blockquote>
There are a shed-load of ways to "eval()" code without actually calling the eval() function '" usually done simply to avoid the use of the dreaded "evil()" function, but often times because the system has eval() disabled using "disable_functions" in php.ini. Here is another simple way to avoid eval() without writing out files to the filesystem
</blockquote>
<p>
His example uses the streams wrapper to natively execute the code from a string variable as a data element, base64 decoded. It's more of a proof-of-concept than anything else, but its an interesting solution to a tough problem to solve at times.
</p>]]></description>
      <pubDate>Mon, 02 Feb 2009 11:15:24 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[PHP Discovery Blog: Dangers of Remote Execution]]></title>
      <guid>http://www.phpdeveloper.org/news/9092</guid>
      <link>http://www.phpdeveloper.org/news/9092</link>
      <description><![CDATA[<p>
On the PHP Discovery blog, there's a <a href="http://phpdiscovery.com/dangers-of-remote-execution/">new post</a> reminding PHP developers of some of the more dangerous ways that remote execution could effect your site and some of the common entry points it can have.
</p>
<blockquote>
PHP has numerous ways to execute raw PHP code unless you the programmer stops it.  Best way in preventing these methods is making sure you check the input of what your users are inputting, and making sure you escape all malicious actions that a hacker,cracker, kiddy scripter might want to do to your website. 
</blockquote>
<p>
He summarizes four of the things from the <a href="http://apress.com/book/view/1590595084">Pro PHP Security</a> book from Apress (by <i>Chris Snyder</i> and <i>Michael Southwell</i>) that can leave holes in you application for would-be explots - preg_replace, shell_exec/exec, eval (which we all know is only one letter from "evil" anyway) and require/include.
</p>]]></description>
      <pubDate>Wed, 21 Nov 2007 13:48:00 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Sara Golemon's Blog: create_function() is not your friend]]></title>
      <guid>http://www.phpdeveloper.org/news/7880</guid>
      <link>http://www.phpdeveloper.org/news/7880</link>
      <description><![CDATA[<p>
In response to <a href="http://www.phpdeveloper.org/news/7874">this previous post</a> from <i>Felix Geisendorfer</i>, <i>Sara Golemon</i> <a href="http://blog.libssh2.org/index.php?/archives/60-create_function-is-not-your-friend.html">shares a few thoughts</a> on why she thinks it's just the other way around - create_function is not your friend.
</p>
<p>
In the <a href="http://blog.libssh2.org/index.php?/archives/60-create_function-is-not-your-friend.html">short post</a> she lists just a few of the issues surrounding the use of the function including that it:
<ul>
<li>is prone to critical abuse by user-supplied code
<li>skips opcode cache optimizations
<li>encourages not using comments (evil)
<li>100% blind to reflection or PHPDoc style documentation generation
</ul>
</p>]]></description>
      <pubDate>Mon, 21 May 2007 09:31:00 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Zend Developer Zone: Security Tips #10, #11, and #12]]></title>
      <guid>http://www.phpdeveloper.org/news/7454</guid>
      <link>http://www.phpdeveloper.org/news/7454</link>
      <description><![CDATA[<p>
The Zend Developer Zone has posted three new helpful security tips to add to their <a href="http://devzone.zend.com/public/view/tag/Security_Tips">growing list</a> - one on mailing, one about working with privileges, and the other on the dangers of eval:
<ul>
<li>In <a href="http://devzone.zend.com/node/view/id/1815">tip #10</a>, <i>Cal</i> looks briefly at some of the dangers of blindly using form input when sending a mail. One never knows what kind of nasty headers a user might enter.
<li><a href="http://devzone.zend.com/node/view/id/1817">Tip #11</a> recommends the "path of least privileges" when it comes to allowing access to your application. Don't go global when simple will do just fine - even with the best of intentions, the wrong access can lead to big issues.
<li>Finally, in <a href="http://devzone.zend.com/node/view/id/1821">tip #12</a>, one of the more discouraged functions in PHP is discussed - eval. This one little function, when fed the wrong kind of string, can unravel your application from the inside out and provide a would-be attacker just the opening they might need.
</ul>
<p>
You can check out more great security tips like these on the <a href="http://devzone.zend.com/public/view/tag/Security_Tips">Zend Developer Zone</a> website.
</p>]]></description>
      <pubDate>Mon, 19 Mar 2007 11:24:00 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Chris Hartjes' Blog: My Next Foolish Project: A console for CakePHP]]></title>
      <guid>http://www.phpdeveloper.org/news/7254</guid>
      <link>http://www.phpdeveloper.org/news/7254</link>
      <description><![CDATA[<p>
<i>Chris Hartjes</i> is <a href="http://www.littlehart.net/atthekeyboard/2007/02/09/my-next-foolish-project-a-console-for-cakephp/">taking on</a> what he calls his "next foolish project" - a console for the CakePHP framework.
</p>
<blockquote>
On the CakePHP mailing list, somebody familiar with Ruby on Rails' console functionality asked "why isn't there one of these in Cake?" [...] So I got to thinking about how to do this. On the surface, it seems the easiest way to do this is to write a PHP script that takes entries on the command line, run the input through an 'eval' statement. Sounds easy enough, and I could write that in a hurry. I think the trickiness comes in figuring out how to hook it into CakePHP so that you can access Models that already exist.
</blockquote>
<p>
For those attending the <a href="http://vancover.php.net/">Vancouver PHP Conference</a>, attend his talk and you might get  amention of how far he's come with the idea. Otherwise, stay tuned to <a href="http://www.littlehart.net/atthekeyboard/">his blog</a> for updates.
</p>]]></description>
      <pubDate>Mon, 12 Feb 2007 07:55:00 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[SitePoint PHP Blog: The Joy of Regular Expressions [2]]]></title>
      <guid>http://www.phpdeveloper.org/news/6375</guid>
      <link>http://www.phpdeveloper.org/news/6375</link>
      <description><![CDATA[<p>
<i>Harry Fuecks</i> is back today on the SitePoint PHP Blog with <a href="http://www.sitepoint.com/blogs/2006/09/27/the-joy-of-regular-expressions-2/">part two</a> of his "joy of regular expressions" series, continuing on from <a href="http://www.phpdeveloper.org/news/6356">this previous entry</a>.
</p>
<p>
He jumps right in, summarizing the first part in a small section before getting back into the examples:
<ul>
<li>Hunting for .jp(e)gs
<li>Escaping Meta-Characters
<li>Search and Replace
<li>preg_quote()
<li>preg_replace()
<li>Word Boundaries, Word Characters...and everything else
<li>Sub patterns
<li>Spot the XSS Hole
<li>eval() is evil!
<li>preg_replace_callback()
</ul>
As you can see, it's crammed with just as much infromation as the first part and <a href="http://www.sitepoint.com/blogs/2006/09/27/the-joy-of-regular-expressions-2/">covers a wide range of topics</a> to help you get more in tune with your inner regular expression guru.
</p>]]></description>
      <pubDate>Wed, 27 Sep 2006 09:20:00 -0500</pubDate>
    </item>
  </channel>
</rss>
