<?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>Wed, 23 May 2012 11:10:56 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[PHPMaster.com: REST - Can You do More than Spell It? Part 4]]></title>
      <guid>http://www.phpdeveloper.org/news/17981</guid>
      <link>http://www.phpdeveloper.org/news/17981</link>
      <description><![CDATA[<p>
PHPMaster.com has posted the latest tutorial in their series covering RESTful APIS - <a href="http://phpmaster.com/rest-can-you-do-more-than-spell-it-4/">part four</a> of "REST - Can you do More than Spell it?" In this latest part of the series, they focus on something very key to RESTful services, the HTTP spec (and headers).
</p>
<blockquote>
We're getting close to the end now, and the only thing remaining is to discuss a little more about the protocol you'll most likely use in any RESTful application that you write. Because HTTP is so often used with REST, that's the protocol I'd like to focus on.
</blockquote>
<p>
He goes through the structure of a typical (raw) HTTP header and talks about some of the more common headers and what actions/settings they represent. He includes examples of setting headers (with <a href="http://php.net/header">header</a>, naturally) and a <a href="http://php.net/curl">curl</a> example showing how to set the request headers. The tutorial is finished off with a brief mention of custom HTTP headers and the the good and bad that comes with them.
</p>]]></description>
      <pubDate>Mon, 21 May 2012 08:44:26 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Infosec Institute: SQL Injection through HTTP Headers]]></title>
      <guid>http://www.phpdeveloper.org/news/17775</guid>
      <link>http://www.phpdeveloper.org/news/17775</link>
      <description><![CDATA[<p>
While not specific to PHP, security is something that all developers need to think about in their applications. To that end, the Infosec Institute has <a href="http://resources.infosecinstitute.com/sql-injection-http-headers/">published this guide</a> to helping you prevent SQL injection attacks that could come in via the HTTP headers of requests to your site.
</p>
<blockquote>
During vulnerability assessment or penetration testing, identifying the input vectors of the target application is a primordial step. Sometimes, when dealing with Web application testing, verification routines related to SQL injection flaws discovery are restricted to the GET and POST variables as the unique inputs vectors ever. What about other HTTP header parameters? Aren't they potential input vectors for SQL injection attacks? How can one test all these HTTP parameters and which vulnerability scanners to use in order to avoid leaving vulnerabilities undiscovered in parts of the application?
</blockquote>
<p>
They start by describing the different kinds of headers that the attacks could come in on - GET, POST, cookies and the other HTTP headers. According to <a href="http://resources.infosecinstitute.com/wp-content/uploads/033012_1704_SQLInjectio1.png?d9c344">some results</a>, the HTTP headers option is the least protected in most common applications. He includes some good examples of headers that might contain malicious data such as:
</p>
<ul>
<li>X-Forwarded-For
<li>User-agent
<li>Referer
</ul>
<p>
Techniques are also included showing you tools and methods to help test your own applications including some in-browser tools and external applications (like Sqlmap, Nessus, WebInspect, SkipFish and Wapiti) with some <a href="http://resources.infosecinstitute.com/wp-content/uploads/033012_1704_SQLInjectio13.png?d9c344">average scores</a> from running them on various coverage scores.
</p>]]></description>
      <pubDate>Wed, 04 Apr 2012 10:17:08 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Lorna Mitchell's Blog: Using OAuth2 for Google APIs with PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/17752</guid>
      <link>http://www.phpdeveloper.org/news/17752</link>
      <description><![CDATA[<p>
<i>Lorna Mitchell</i> has <a href="http://www.lornajane.net/posts/2012/using-oauth2-for-google-apis-with-php">a new post</a> to her blog today showing how to use the functionality provided by the <a href="http://pecl.php.net/package/pecl_http">pecl_http</a> extension to make an OAuth2 connection to Google.
</p>
<blockquote>
I've written about Google and OAuth before, but that was OAuth v1.0, and they are introducing OAuth2 for their newer APIs; in this example I was identifying myself in order to use the Google Plus API. [...] OAuth 2 doesn't need an extension or any particular library as it doesn't have the signing component that OAuth 1 had, and OAuth 2 also has fewer round trips. It does require SSL however, because the requests are in the clear.
</blockquote>
<p>
She includes some code snippets with an example of a connection - making a request to the remote HTTPS resource, adding some parameters to the URL (including the response type, your client ID and a redirect url). The response then contains the "code" value you'll need to make the second request to fetch the access token you'll need on future requests. You can find out more about the interface she's accessing in <a href="https://developers.google.com/+/api/">these docs</a> about the Google Plus API.
</p>]]></description>
      <pubDate>Thu, 29 Mar 2012 12:02:21 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Lorna Mitchell's Blog: Using JIRA's REST API to Create a Dashboard]]></title>
      <guid>http://www.phpdeveloper.org/news/17743</guid>
      <link>http://www.phpdeveloper.org/news/17743</link>
      <description><![CDATA[<p>
In <a href="http://www.lornajane.net/posts/2012/using-jiras-rest-api-to-create-a-dashboard">this recent post</a> to her blog, <i>Lorna Mitchell</i> shows how to use the Jira REST API (provided as a part of some of the newer versions of the tool) to create a "dashboard" of the latest items added to the tracker.
</p>
<blockquote>
Today what you get is an example of integrating with JIRA's REST API, because their recent "upgrade" locked me out of the issue listings pages completely and I really do need to be able to see a list of bugs! Their bug editing screen is quite usable, so it's just the list that I need here, but you could easily call their <a href="http://docs.atlassian.com/jira/REST/latest/">other API methods</a> as you need to. These examples are PHP and use the <a href="http://pecl.php.net/pecl_http>PECL_HTTP</a> extension, because it's awesome, but these examples could be easily adapted to use another language or library.
</blockquote>
<p>
She includes an example of the REST-based URL to fetch the issues (based on the <a href="http://joindin.jira.com">Joind.in Jira tracker</a>), parsing the JSON results and displaying the results as a simple list, looping with a foreach and outputting some HTML.
</p>]]></description>
      <pubDate>Wed, 28 Mar 2012 10:57:56 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Mike Wallner's Blog: Dropping server load with HTTP caching]]></title>
      <guid>http://www.phpdeveloper.org/news/17456</guid>
      <link>http://www.phpdeveloper.org/news/17456</link>
      <description><![CDATA[<p>
<i>Mike Wallner</i> has shared a <a href="http://blog.iworks.at/?/archives/4-Dropping-server-load-with-HTTP-caching.html">quick and easy HTTP caching technique</a> in a new post to his blog today. The key is in using the PEAR <a href="http://pear.php.net/package/HTTP_Header">HTTP_Header</a> package.
</p>
<blockquote>
Ever watched youself browsing e.g. a web forum? Noticed that you viewed the same page several times? Well, this means extraordinary and useless load for your server if there's no caching mechanism implemented in the web application. Even if there is some file or db cache you can still improve performance with implementing some http cache.
</blockquote>
<p>
With a few simple lines of code using <a href="http://pear.php.net/package/HTTP_Header">HTTP_Header</a>, you can tell your scripts how long to set the "expires" header to on your requests. This increment (in seconds) is relayed to the browser to tell it when to next fetch the page and not reload from cache.
</p>]]></description>
      <pubDate>Fri, 27 Jan 2012 09:43:04 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Chris Hartjes' Blog: Better HTTP Request/Response in PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/17256</guid>
      <link>http://www.phpdeveloper.org/news/17256</link>
      <description><![CDATA[<p>
In a recent post to his blog <i>Chris Hartjes</i> looks at the idea of <a href="http://www.littlehart.net/atthekeyboard/2012/12/12/better-http-request-response-in-php/">better HTTP Request/Response functionality</a> in PHP, more than just the <a href="http://us3.php.net/manual/en/language.variables.superglobals.php">superglobal</a> handling and <a href="http://www.php.net/http">PECL HTTP extension</a> it has now.
</p>
<blockquote>
I think the fact that we have $_POST and $_GET lulls some of us into the false sense that we should have $_PUT and $_DELETE objects, since that would map to the commonly-desired set of HTTP verbs that REST likes to use. But what should be inside those things, or should we be moving towards a more Pythonesque solution where a Request object, as part of core or via a only-really-for-the-brave- PECL extension?
</blockquote>
<p>
He mentions opinions from other PHP community members (<a href="http://twitter.com/lxt">Laura Thompson</a> and <a href="http://twitter.com./auroraeosrose">Elizabeth Smith</a>) and a bit about what he (and I'm sure other developers) are looking for in a more full-featured request/response handling feature.
</p>]]></description>
      <pubDate>Wed, 14 Dec 2011 09:51:03 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Community News: "Developer Hell" Podcast]]></title>
      <guid>http://www.phpdeveloper.org/news/17252</guid>
      <link>http://www.phpdeveloper.org/news/17252</link>
      <description><![CDATA[<p>
<i>Chris Hartjes</i> and <i>Ed Finkler</i> (two well-known PHP community members) have started up a podcast where they talk about, basically, whatever they want in their "piss-and-moan-driven-development" style. In their first episode, they talk about <a href="http://devhell.info/post/2011-12-10/what-we-hate-about-php/">what they hate about PHP</a>.
</p>
<blockquote>
Listen to a couple old dudes complain that they don't like PHP anymore. Yes, I know, this sounds pretty compelling.
</blockquote>
<p>
They specifically mention the <a href="http://php.net/manual/en/features.file-upload.put-method.php">PUT method support</a> in PHP. You can <a href="http://devhell.s3.amazonaws.com/ep1-64mono.mp3">download the mp3</a> (about an hour and a half long) and check out the two hosts on Twitter: <a href="http://twitter.com/chartjes">Chris</a> and <a href="http://twitter.com/funkatron">Ed</a>.
</p>]]></description>
      <pubDate>Tue, 13 Dec 2011 13:16:19 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPBuilder.com: Transfer Data via Multiple Protocols with Libcurl]]></title>
      <guid>http://www.phpdeveloper.org/news/16876</guid>
      <link>http://www.phpdeveloper.org/news/16876</link>
      <description><![CDATA[<p>
On PHPBuilder.com today there's a new tutorial showing how to <a href="http://www.phpbuilder.com/columns/Libcurl/Libcurl_09-14-2011.php3">use libcurl to communicate with multiple protocols</a> like FTP, HTTP, HTTPS, SMTP and STMPS. The <a href="http://curl.haxx.se/libcurl/">libcurl</a> library that can be compiled in or installed as a shared module in your PHP install to provide enhanced networking abilities.
</p>
<blockquote>
As I wrote in my <a hef="http://www.phpbuilder.com/columns/php-multithreading-curl/Octavia_Anghel06072011.php3">PHP multithreading with cURL</a> article, the libcurl is a free and easy-to-use client-side URL transfer library, supporting DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET and TFTP. PHP supports the libcurl library which allows you to connect and communicate to many different types of servers with many different types of protocols.
</blockquote>
<p>
<a href="http://www.phpbuilder.com/columns/Libcurl/Libcurl_09-14-2011.php3">The tutorial</a> focuses on two different types of connections (well, four really) - FTP/FTPS and HTTP/HTTPS - and how to transfer data across each. Some code is included to create a (procedural) tool to send an uploaded file to a remote site.
</p>]]></description>
      <pubDate>Mon, 19 Sep 2011 12:03:23 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Anthony Wlodarskis Blog: Authentication with Node.js and Zend Framework]]></title>
      <guid>http://www.phpdeveloper.org/news/16649</guid>
      <link>http://www.phpdeveloper.org/news/16649</link>
      <description><![CDATA[<p>
<i>Anthony Wlodarski</i> has put together a new post to his blog talking about <a href="http://anthonyw.net/2011/07/authentication-with-node-js-and-zend-framework/">authenticating a Zend Framework app against Node.js</a> with the help of the <a href="http://socket.io/">Socket.io</a> component for handling credentials.
</p>
<blockquote>
Zend Framework which is PHP based and Node.js which is JavaScript based don't have a common connection to pass data in a bi-directional nature. I was tasked with building a bridge of sorts that would utilize existing information from Zend Framework with the latest release of Socket.io's authorization mechanisms. (If you don't do this then arbitrary connections can happen and will be authorized.)
</blockquote>
<p>
He starts with the code (on the Node.js side) to create a simple HTTP server to listen for the requests from the Zend Framework application. He gets into the details of how that all works before moving to the other side - a simple update to the authentication to store a session cookie with the information that is passed, via Socket.io to the waiting Node.js server for handling.
</p>]]></description>
      <pubDate>Thu, 28 Jul 2011 13:41:28 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[DZone.com: What new feature in PHP 5.4 is the most important to you?]]></title>
      <guid>http://www.phpdeveloper.org/news/16612</guid>
      <link>http://www.phpdeveloper.org/news/16612</link>
      <description><![CDATA[<p>
In a new post to DZone.com today <i>Giorgio Sironi</i> asks developers <a href="http://css.dzone.com/polls/what-new-feature-php-54">what new feature of PHP 5.4 is the most important</a> to you and your application development?
</p>
<blockquote>
<a href="http://news.php.net/php.internals/53989">Recently</a>, the voting process for PHP 5.4 open to committers and users have been closed. We now have a clear picture of what will make the release and what will be left out. Some of these features (traits, web server) were already in, while other have been just voted and will be completed before the general availability of the release.
</blockquote>
<p>
He lists out some of the major changes that'll be coming in the 5.4 release including traits, dereferencing, the built-in HTTP server, closure type hinting and the upload progress feature previously only in an extension. The end of <a href="http://css.dzone.com/polls/what-new-feature-php-54">the post</a> includes a poll for you to give your feedback on what you think is the most important. As of the time of this post, the array dereferencing has pulled into the lead with traits coming in second.
</p>]]></description>
      <pubDate>Wed, 20 Jul 2011 10:14:59 -0500</pubDate>
    </item>
  </channel>
</rss>

