<?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>Tue, 21 May 2013 17:11:07 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[PHPMaster.com: Password Hashing In PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/19031</guid>
      <link>http://www.phpdeveloper.org/news/19031</link>
      <description><![CDATA[<p>
On PHPMaster.com there's a new tutorial that wants to help you keep your application and users a bit safer - a <a href="http://phpmaster.com/password-hashing-in-php/">guide to password hashing</a> for PHP applications.
</p>
<blockquote>
You must always think about security. If passwords are stored in plain text, what happens if an attacker gains access to your database? He can easily read all of the users' passwords. That's why we use a technique called password hashing to prevent attackers from getting user passwords. In this article you'll learn how to store the passwords securely in the database so that, even if your database falls into wrong hands, no damage will be done.
</blockquote>
<p>
He starts off describing what password hashing is and why it's important (and better than it's plain-text alternative). He gives some examples of using some of the built-in hashing functions PHP has to offer to generate the hashes. He starts with <a href="http://php.net/md5">md5</a>/<a href="http://php.net/sha1">sha1</a> (note, these are <b>not recommended</b>) but moves into more effective options like sha256, salted hashing and even bcrypting passwords with <a href="http://php.net/crypt">crypt</a>.
</p>
<p>
Be sure to check out the comments for other security concerns and links to suggested tools and resources.
</p>]]></description>
      <pubDate>Mon, 14 Jan 2013 11:57:32 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[DeveloperDrive.com: 5 PHP Security Measures]]></title>
      <guid>http://www.phpdeveloper.org/news/18187</guid>
      <link>http://www.phpdeveloper.org/news/18187</link>
      <description><![CDATA[<p>
On the DeveloperDrive.com site today there's a new post with <a href="http://www.developerdrive.com/2012/07/5-php-security-measures/">five easy steps</a> you can take to help increase the security of your PHP-based applications.
</p>
<blockquote>
For many years, PHP has been a stable, inexpensive platform on which to operate web-based applications. Like most web-based platforms, PHP is vulnerable to external attacks. Developers, database architects and system administrators should take precautions before deploying PHP applications to a live server. Most of these techniques can be accomplished with a few lines of code or a slight adjustment to the application settings.
</blockquote>
<p>
The five tips they list range from general "best practice" kinds of things to a bit more specific:
</p>
<ul>
<li>Manage Setup Scripts
<li>Include Files (using ".php" not ".inc")
<li>MD5 vs. SHA
<li>Automatic Global Variables (no longer an issue in recent releases, 5.4.x)
<li>Initialize Variables and Values
</ul>]]></description>
      <pubDate>Thu, 05 Jul 2012 12:02:53 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Joseph Scott's Blog: Slow Hashing]]></title>
      <guid>http://www.phpdeveloper.org/news/17797</guid>
      <link>http://www.phpdeveloper.org/news/17797</link>
      <description><![CDATA[<p>
In <a href="http://josephscott.org/archives/2012/04/slow-hashing/">this new post</a> <i>Joseph Scott</i> takes a look at hashing in PHP, specifically around <a href="http://php.net/md5">md5</a> hashes, and a better alternative (that's also more secure.
</p>
<blockquote>
The majority of the <a href="http://www.codinghorror.com/blog/2012/04/speed-hashing.html">Coding Horror: Speed Hashing</a> post talks about speed based on MD5.  [...] If you are still using MD5 to hash passwords (or worse, aren't hashing passwords at all) then please stop and go use <a href="http://bcrypt.sourceforge.net/">bcrypt</a>. For those using PHP <a href="http://www.openwall.com/phpass/">phpass</a> is a great option.
</blockquote>
<p>
He talks about the <a href="http://php.net/crypt">crypt</a> method, how its encryption method and "cost" value effects the speed and how difficult it would be to generate all possible hashes for a password (hint: crypt with a cost of 13 is worlds better than md5).
</p>]]></description>
      <pubDate>Tue, 10 Apr 2012 11:55:02 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[PHP.net: 5.3.7 upgrade warning]]></title>
      <guid>http://www.phpdeveloper.org/news/16752</guid>
      <link>http://www.phpdeveloper.org/news/16752</link>
      <description><![CDATA[<p>
In a quick note from the PHP.net site, they have a warning for those running PHP 5.3.7 (the most recent release) - there's a bug that's serious enough (with <a href="http://php.net/crypt">crypt</a>) to where upgrades should probably wait until 5.3.8.
</p>
<blockquote>
Due to unfortunate issues with 5.3.7 (see <a href="https://bugs.php.net/bug.php?id=55439">bug#55439</a>) users should wait with upgrading until 5.3.8 will be released (expected in few days).
</blockquote>
<p>
<a href="https://bugs.php.net/bug.php?id=55439">The issue</a> causes the crypt() function to only return the (MD5-only) salt it was given instead of the correctly hashed string. If you need to replace this immediately, you can pull the latest from <a href="http://snaps.php.net/">the snaps site</a> (or <a href="http://windows.php.net/snapshots/">binaries for Windows</a>). Keep an eye out for PHP 5.3.8 in the near future.
</p>]]></description>
      <pubDate>Mon, 22 Aug 2011 12:32:48 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[NetTuts.com: Understanding Hash Functions and Keeping Passwords Safe]]></title>
      <guid>http://www.phpdeveloper.org/news/15756</guid>
      <link>http://www.phpdeveloper.org/news/15756</link>
      <description><![CDATA[<p>
On NetTuts.com today there's a new tutorial from <i>Burak Guzel</i> about keeping your passwords (and web applications) safer by <a href="http://net.tutsplus.com/tutorials/php/understanding-hash-functions-and-keeping-passwords-safe">using hashing with passwords</a> and understanding which of the PHP functions is right for you.
</p>
<blockquote>
From time to time, servers and databases are stolen or compromised. With this in mind, it is important to ensure that some crucial user data, such as passwords, can not be recovered. Today, we are going to learn the basics behind hashing and what it takes to protect passwords in your web applications.
</blockquote>
<p>
The article is a simple introduction to the topic and doesn't claim that it will protect you 100% but it's good to get the ball rolling. They talk about <a href="http://php.net/md5">md5</a> hashing and the <a href="http://php.net/crypt">crypt</a> method. He also outlines a few problems that surround hashing - hash collisions, attackers using "rainbow tables" and how quickly the average computer can run through hashes (an average 8 character password could be broken in around 60 hours). For each, he includes a few things you can do in your code to help prevent them from happening.
</p>]]></description>
      <pubDate>Tue, 18 Jan 2011 08:05:29 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[WebReference.com: Using PHP Encryption for Login Authentication]]></title>
      <guid>http://www.phpdeveloper.org/news/14602</guid>
      <link>http://www.phpdeveloper.org/news/14602</link>
      <description><![CDATA[<p>
New on WebReference.com there's a follow up article that talks about <a href="http://www.webreference.com/programming/php/encryption_authentication/">using encryption</a> built into PHP to handle login information and authentication.
</p>
<blockquote>
Following up on "<a href="http://www.webreference.com/programming/php/encryption_one-way/">Implementing One-way Encryption in PHP</a>," my previous tutorial about using one-way encryption to build a secure online diary application, this article explores using PHP encryption for login authentication. It presents the two scripts that make up the diary application: the login and diary scripts, as well as the necessary database server connection script.
</blockquote>
<p>
His script example shows how to use the <a href="http://php.net/md5">md5 hashing function</a> to compare passwords with the ones in the database as well as a modification that uses the <a href="http://php.net/mcrypt">mcrypt</a> libraries to encrypt some sample text.
</p>]]></description>
      <pubDate>Fri, 04 Jun 2010 08:50:10 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Jonathan Street's Blog: Random thoughts on random strings]]></title>
      <guid>http://www.phpdeveloper.org/news/10535</guid>
      <link>http://www.phpdeveloper.org/news/10535</link>
      <description><![CDATA[<p>
On his blog, <i>Jonathan Street</i> has <a href="http://torrentialwebdev.com/blog/archives/157-Random-thoughts-on-random-strings.html">posted some "random thoughts"</a> on generating random (or not so random) strings in PHP.
</p>
<blockquote>
Humans are astoundingly bad at being random and I just slapped the keyboard a few times until I felt I had the required 16 characters. Writing some code to produce a fairly random string is incredibly easy. I've easily done it a dozen times or more. Though only because it is easier to re-write it than to find where I put the last one
</blockquote>
<p>
He gives two examples that work, but aren't the best possibilities for making truly random strings - one using mt_rand to select a random character from a string and the other using the same idea but instead using the char() function to replace the string of characters.
</p>
<p>
His other examples include the use of the uniqid function with the more_entropy setting enabled and an md5 or sha1 hash (for which he gives positives and negtives).
</p>]]></description>
      <pubDate>Thu, 03 Jul 2008 07:58:33 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[AnyExample.com: PHP password generation]]></title>
      <guid>http://www.phpdeveloper.org/news/6994</guid>
      <link>http://www.phpdeveloper.org/news/6994</link>
      <description><![CDATA[<p>
A <a href="http://anyexample.com/programming/php/php__password_generation.xml">new tutorial</a> has been posted over on AnyExample.com dealing with password generation in PHP. This type of script can be useful for creating a default password for your application to give initially to the user.
</p>
<blockquote>
Modern web-applications often provide (during registration, or password-reset) random-generated passwords for its users. However these passwords (usually a random combination of letters or numbers) are quite hard to remember: in fact, it's even impossible to read them. This article provides a function for generating English-like readable passwords.
</blockquote>
<p>
The key difference in <a href="http://anyexample.com/programming/php/php__password_generation.xml">this script</a> is that last sentence - making the passwords somewhat human-readable. They give an example of what the traditional (md5-ish) approach to making passwords is before giving the code to create something a bit easier to remember like "lyttakor" or "fapoution". Example usage code is also provided.
</p>]]></description>
      <pubDate>Fri, 29 Dec 2006 08:03:00 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[David Coallier's Blog: Free PHP Security Scan]]></title>
      <guid>http://www.phpdeveloper.org/news/6707</guid>
      <link>http://www.phpdeveloper.org/news/6707</link>
      <description><![CDATA[<p>
<i>David Coallier</i> <a href="http://blog.agoraproduction.com/index.php?/archives/8-Free-PHP-Security-Scan.html">has posted</a> about his ideas for an Open Source, free PHP security scanner:
</p>
<blockquote>
The idea of this project is quite simple, I was thinking that offering this service to anyone who requests it could be a very nice idea. Offering to run the scan is the only way I could ensure that people are not using this scanner against any website.
</blockquote>
<p>
Basically, <a href="http://blog.agoraproduction.com/index.php?/archives/8-Free-PHP-Security-Scan.html">his idea</a> is to offer this service free of charge, but still restrict it to avoid malicious use. It would involve validation via an md5 hash to ensure that the website has been authorized to run it. Check out the blog entry for more details on how the scan would be run.
</p>]]></description>
      <pubDate>Wed, 15 Nov 2006 07:06:07 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Ryan Malesevich's Blog: MD5 to SHA-1 in PHP and MySQL (Part 1)]]></title>
      <guid>http://www.phpdeveloper.org/news/6397</guid>
      <link>http://www.phpdeveloper.org/news/6397</link>
      <description><![CDATA[<p>
<i>Ryan Malesevich</i> is taking a break from his look at some handy WordPress packages to share a small series on how to move from using MD5 hashes out to SHA-1 hashes for passwords in a MySQL database. He's posted <a href="http://ryanslife.net/2006/10/01/md5-to-sha-1-in-php-and-mysql-part-1/">part one</a> today.
</p>
<blockquote>
What if you're using MD5 in your web application and want to switch over to another encryption method. It's actually not that hard and I plan to cover them in this multi-part tutorial (I know I planned on writing this months ago, but it's better late then never). In this first part I plan on going over updating the database structure and a 'pseudo-code' of what will need to be done.
</blockquote>
<p>
As mentioned, he <a href="http://ryanslife.net/2006/10/01/md5-to-sha-1-in-php-and-mysql-part-1/">gives the outline</a> (pseudo-code) of how the process will work - basically, creating an SHA1 hash of the MD5 and the username in a "newpassword" column added to your database.
</p>]]></description>
      <pubDate>Mon, 02 Oct 2006 09:31:00 -0500</pubDate>
    </item>
  </channel>
</rss>
