<?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>Fri, 09 Jan 2009 22:04:51 -0600</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Paul Reinheimer's Blog: Stop Messing up CSRF Protection]]></title>
      <guid>http://www.phpdeveloper.org/news/11374</guid>
      <link>http://www.phpdeveloper.org/news/11374</link>
      <description><![CDATA[<p>
In <a href="http://blog.preinheimer.com/index.php?/archives/283-Stop-Messing-up-CSRF-Protection.html">his latest post</a> <i>Paul Reinheimer</i> looks at cross-site request forgeries and, despite the best efforts of the PHP security community, how developers still just miss the point in protecting their own code.
</p>
<blockquote>
So, cross site request forgeries are a pretty common topic these days; they're in almost every security talk, book, site etc. This is okay; they're important [...] Most of the sites, and all of the books I've read demonstrate things correctly, but when it comes to actual implementation, time and time again, I see code that's just wrong.
</blockquote>
<p>
He looks at two of the "essentials" when it comes to protecting you and your application - comparison (not taking other values of variables into account) and the unpredictable token (not making tokens, like md5 hashes of information, random enough).
</p>]]></description>
      <pubDate>Mon, 10 Nov 2008 08:47:53 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Jani Hartikainen's Blog: How to CSRF protect all your forms]]></title>
      <guid>http://www.phpdeveloper.org/news/11227</guid>
      <link>http://www.phpdeveloper.org/news/11227</link>
      <description><![CDATA[<p>
<i>Jani Hartikainen</i> has <a href="http://codeutopia.net/blog/2008/10/16/how-to-csrf-protect-all-your-forms/">posted a few ideas</a> on cross site request forgeries in a new blog entry, including some methods to help prevent it in your application.
</p>
<blockquote>
CSRF, or Cross-Site Request Forgery, is a vulnerability very common in websites. [...] This can be dangerous, especially if your admin interface is compromised: There may be a button on the other site which goes to your admin interface and deletes the latest blogpost for example - and you wouldn't want that!
</blockquote>
<p>
His method is a three-step process for protection - use POST, protect against cross-site scripting and use a CSRF key in the form to help prevent abuse. A simple script is included to show it working and is adapted to work in a <a href="http://codeutopia.net/code/library/CU/Controller/Plugin/CsrfProtect.php">controller plugin</a> for the Zend Framework.
</p>]]></description>
      <pubDate>Thu, 16 Oct 2008 12:07:26 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Symfony Blog: Security must be taken seriously]]></title>
      <guid>http://www.phpdeveloper.org/news/11140</guid>
      <link>http://www.phpdeveloper.org/news/11140</link>
      <description><![CDATA[<p>
On the symfony blog <i>Fabien Potencier</i> encourages all symfony developers that the security of your application must be taken seriously and that, despite the built-in protection the framework offers, there still could be issues.
</p>
<blockquote>
The symfony framework has always provided the tools needed by the developers to secure their applications. With the new form framework, we have added an automatic protection against CSRF. Speaking of the form framework, we have also added a lot of <a href="http://www.symfony-project.org/book/forms/1_1/en/02-Form-Validation#Validators%20Security">security features</a> to protect you against all sort of injections.
</blockquote>
<p>
He does include an example, though, of a situation where it's not just about protecting from cross-site scripting or attacks. It's about checking user input to ensure it's what it should be. They give the example of a user pushing an "is_admin" value into a form posting where there wasn't one and updating the right column to give them admin rights. 
</p>
<p>
He mentions some work the Rails team has tried to do to prevent this sort of thing automatically, but <i>Fabian</i> points out what the symfony framework already does - prevent any injected fields other than what's in the forms from being submitted and included.
</p>]]></description>
      <pubDate>Fri, 03 Oct 2008 08:49:25 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[IBM DeveloperWorks: Seven habits for writing secure PHP applications]]></title>
      <guid>http://www.phpdeveloper.org/news/11125</guid>
      <link>http://www.phpdeveloper.org/news/11125</link>
      <description><![CDATA[<p>
The IBM DeveloperWorks site has <a href="http://www.ibm.com/developerworks/opensource/library/os-php-secure-apps/index.html?ca=dgr-btw01PHP-7Habits&S_TACT=105AGX59&S_CMP=grsite-btw01">posted some advice</a> that can help keep you, your application and your data safe from security-related attacks.
</p>
<blockquote>
Security in a PHP application includes remote and local security concerns. Discover the habits PHP developers should get into to implement Web applications that have both characteristics. 
</blockquote>
<p>
The habits in <a href="http://www.ibm.com/developerworks/opensource/library/os-php-secure-apps/index.html?ca=dgr-btw01PHP-7Habits&S_TACT=105AGX59&S_CMP=grsite-btw01">their list</a> are:
</p>
<ul>
<li>Validate input
<li>Guard your file system
<li>Guard your database
<li>Guard your session
<li>Guard against XSS vulnerabilities
<li>Guard against invalid posts
<li>Protect against CSRF
</ul>
<p>
Each comes with their own explanation and for some, code to help you spot the mistakes and correct them.
</p>]]></description>
      <pubDate>Wed, 01 Oct 2008 10:28:55 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Pierre-Alain Joye's Blog: PHP Security Conference in Paris, 2007/01/29]]></title>
      <guid>http://www.phpdeveloper.org/news/7111</guid>
      <link>http://www.phpdeveloper.org/news/7111</link>
      <description><![CDATA[<p>
<i>Pierre-Alain Joye</i> has <a href="http://blog.thepimp.net/index.php/post/2007/01/16/PHP-Security-Conference-in-Paris-2007/12/29">posted a reminder</a> about an event happening on the 29th of January (2007) with <i>Damien S&eacute;guy</i> in Paris concerning PHP security.
</p>
<blockquote>
He will focus on the XSS and CSRF aspects of the web applications: sources of the vulnerabilities, attacks/exploits and the defense techniques. I will sadly not attend but such events are rare enough to be mentioned loudly.
</blockquote>
<p>
The talk is a part of <a href="http://www.afup.org/article.php3?id_article=322">this meeting</a> and requires a RVSP to attend, so if you'd like to attend, please <a href="http://www.afup.org/rdv_afup/">sign up today</a>.
</p>]]></description>
      <pubDate>Wed, 17 Jan 2007 11:54:00 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Templora.com: Basic PHP Script Security]]></title>
      <guid>http://www.phpdeveloper.org/news/6991</guid>
      <link>http://www.phpdeveloper.org/news/6991</link>
      <description><![CDATA[<p>
As mentioned <a href="http://digg.com/programming/Basic_PHP_Security">on Digg</a>, there's a <a href="http://templora.com/content/14">very simple guide</a> to securing your PHP applications - or at least taking steps towards that.
</p>
<blockquote>
For the purpose of this tutorial we have listed some commonly known attacks, and how to protect against them. This is crucial for beginners in PHP because PHP tutorials and basic documentation does not accentuate this problem enough. Examples are given that are vulnerable to attacks, and students are either not aware of the vulnerabilities, or are not adequately educated how to protect their scripts.
</blockquote>
<p>
They topics they look at are SQL injections, XSS attacks, CSRF attacks, and PHP variable insertion. They talk talk about one of the best things you can do to help secure your site and its data - input filtering.
</p>
<p>
If you've been paying attention at all to the buzz in the PHP community lately, you'll know that <a href="http://templora.com/content/14">articles like this</a> are nothing new. These are the same things other developers are commenting on as well. It is good to see it get more exposure via digg though...
</p>]]></description>
      <pubDate>Thu, 28 Dec 2006 15:49:05 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Hardened-PHP Project: Advisory - phpMyAdmin Multiple CSRF Vulnerabilities]]></title>
      <guid>http://www.phpdeveloper.org/news/6398</guid>
      <link>http://www.phpdeveloper.org/news/6398</link>
      <description><![CDATA[<p>
The Hardened-PHP Project has issued <a href="http://www.hardened-php.net/advisory_072006.130.html">another advisory</a> today, this time effecting the popular database administration package <a href="http://www.phpmyadmin.net/">phpMyAdmin</a>.
</p>
<blockquote>
<p>
During an audit of phpMyAdmin's protection against CSRF: Cross Site Request Forgeries we discovered that there were multiple ways to bypass the protection.
</p>
<p>
The failure of phpMyAdmin's CSRF protection obviously means that a potential attacker can use CSRF attacks to trick the browser of a phpMyAdmin user to execute any kind of SQL queries on the victims database server.
</p>
</blockquote>
<p>
The <a href="http://www.hardened-php.net/advisory_072006.130.html">advisory</a> mentions the source of the problem - a random token that is in the user's session that could be exploited to gain unauthorized access to an account. Their recommendation is to <a href="http://www.phpmyadmin.net/home_page/downloads.php">update to the latest version</a> of phpMyAdmin (2.9.0.1 as of the time of this post) to help resolve the issue.
</p>]]></description>
      <pubDate>Mon, 02 Oct 2006 09:51:00 -0500</pubDate>
    </item>
  </channel>
</rss>
