{too much burden in my code....}
Aug 12

$this->Post->title('ciao php4!');

Well it’s been officially announced on php.net that PHP4 will no longer be supported.

Today it is exactly three years ago since PHP 5 has been released. In those three years it has seen many improvements over PHP 4. PHP 5 is fast, stable & production-ready and as PHP 6 is on the way, PHP 4 will be discontinued.
The PHP development team hereby announces that support for PHP 4 will continue until the end of this year only. After 2007-12-31 there will be no more releases of PHP 4.4. We will continue to make critical security fixes available on a case-by-case basis until 2008-08-08. Please use the rest of this year to make your application suitable to run on PHP 5.


Support GoPHP5.org

Aug 12

$this->Post->title('my custom php.ini');

my php.ini Someone asked me what are the things to be consider when creating your own php.ini. I said of course disable global variables, upload / resources limits and session timeout. If you use php language then the odds are you may need to consider using a custom php.ini at some point. Here is my PHP configuration that I encourage you to have on your web server that I checked after .

Turn off Register Globals

register_globals = off

If you code with register_globals OFF, you only need to make sure you don’t leave any uninitialised variables that can be abused by attackers. But whether it’s on or off you will still need to validate any user input, so I prefer register_globals OFF, as it saves having to prefix all my variables with $_POST etc.

Avoid Opening Remote Files

allow_url_fopen = off

One of the useful abilities of PHP is the ability to open files remotely without any complex processing.

Many simple scripts use this ability, for example a comic viewer might open up images from a remote server just using the fopen function - which is ordinarily used to open files.

It is an ability has often been abused in insecure scripts though.

If you have a script which tries to open a file and the filename is controllable by a remote user two things can happen:

  • Any file on the local system which the webserver can read can be viewed by the remote attacker.
  • Arbitary commands can be executed upon your server if the user can cause a remote PHP file to be opened.

Disable session use_trans_sid

session.use_trans_sid = 0

PHP will add a unique PHPSESSID query pair to URIs within your site if cookies are not available and session.use_trans_sid is set. While this helps people who do not accept cookies, search engines will rank your site low.

With the release of PHP version 4.2.0 you don’t need to configure PHP with –enable-trans-sid to have transparent session support, this means that a lot more hosts will have it.

Without this feature you can usually choose between sending cookies to the visitor and modifying the URLs, with cookies being the default setting. Cookies do no harm (most of the time) but appending a query string to all URLs is quite different.

Turn on log_error and display_errors off

log_errors on
display_errors off

Disable Dangerous PHP Functions

disable_functions = proc_open , popen, disk_free_space, diskfreespace, set_time_limit, leak, tmpfile, exec, system, shell_exec, passthru

Turn on safe_mode

I highly recommend you enable safe_mode on production servers, especially in shared environments. This will stop exec functions and others that can easily prevent a security breach.