Cuando instalamos PHP este viene con una serie de valores por defecto que no lo hacen adecuado para un sitio en producción y puede provocar que utilicemos técnicas inseguras. Todo esto puede solucionarse si ponemos en práctica el listado de tareas que debemos realizar antes de abrir el sitio al gran público que nos deja Ayman Hourieh.
safe_mode_gid = On
max_input_time = 60 ; Max time spent parsing input
memory_limit = 16M ; Max memory used by one script
upload_max_filesize = 2M ; Max upload file size
post_max_size = 8M ; Max post size
Order allow,deny
Deny from all
log_errors = On
Todos los cambios realizados quedan concretados en un php.ini tal que así:
allow_url_fopen = Off ; Disable URLs for file handling functions
register_globals = Off ; Make sure this hellish fiend is dead
open_basedir = /var/www/htdocs/files ; Restrict file handling functions to a subdirectory
safe_mode = Off ; Disable this, the next is often more practical
safe_mode_gid = On ; Enable safe mode with group check
safe_mode_exec_dir = /var/www/binaries ; Restrict execution functions to this directory
safe_mode_allowed_env_vars = PHP_ ; Restrict access to environment variables
max_execution_time = 30 ; Max script execution time
max_input_time = 60 ; Max time spent parsing inputs
memory_limit = 16M ; Max memory size used by one script
upload_max_filesize = 2M ; Max upload file size
post_max_size = 8M ; Max post size
display_errors = Off ; Do not show errors on screen
log_errors = On ; Log errors to log file
expose_php = Off ; Hide presence of PHP
Y un archivo .htaccess o parte de la configuración de Apache
Order allow,deny
Deny from all
Más información y explicaciones en el artículo original, en inglés: Checklist for Securing PHP Configuration
A pesar de que el proceso de prueba/error suele ser el más fructífero a la hora de aprender un nuevo lenguaje de programación, nunca está de más conocer ciertos «trucos» que emplean los desarrolladores más avanzados y ahorrarnos unas cuantas horas de sufrimiento y dolores de cabeza.
Con esta intención Jeffery Vaska publica una serie de dos artículos en PHPBuild:
10 Tips That Every PHP Newbie Should Know, y
10 Tips That Every PHP Developer Should Know, Part 2
En FYIcenter han publicado un estupendo artículo con 8 consejos para trabajar con archivos y directorios desde PHP
PHP Script Tips – Working with Directoris and Files
Via Pixel Groovy
En ocasiones se hace necesario fortalecer un poco más la seguridad del formulario de login de un sitio web. No es extraño encontrarse con gente que trata de adivinar la contraseña de alguien o incluso con quienes no la recuerdan y van probando con su manojo de «contraseñas estándar». Esto, además de poner en peligro la seguridad de nuestros usuarios registrados (ya que suponer que van a utilizar contraseñas seguras es poco menos que utópico) puede suponernos una pérdida de recursos importantes.
Por eso puede interesarnos un script que nos permita bloquear una ip temporalmente tras tres intentos fallidos de login. No es nada excesivamente complicado y puede sernos de mucha ayuda.
Blocking access to the login page after three unsuccessful login attempts
Via dzone
Sin duda si hay una función de PHP que utilicemos con más interés los menos entendidos del tema es include(), con ella podemos incluir archivos externos en nuestras páginas e, incluso, crear un sistema simple de plantillas donde se incluyan el cabecero, pie y menú en todas las páginas, ahorrándonos tiempo y espacio en disco.
Existen dos funciones mediante las cuales podemos incluir archivos:
include() hace precisamente eso, incluir el archivo que le indiquemos en el lugar que le indiquemos
include("./menu.php")
?>
require() va un paso más allá, si no encuentra el archivo que debe incluir genera un Error Fatal y detiene la carga del script.
require("./funciones.php")
?>
(más…)
Seguro que en alguna ocasión has necesitado una galería de imágenes, desde crear un portafolio hasta mostrarle al mundo las fotos de tu perro. Generalmente los CMS pensados como galerías terminan teniendo gran cantidad de opciones, muchas que ni siquiera vas a utilizar y que pueden dificultar el trabajo de administración o incluso de configuración.
A pesar de que buscando un poco no es difícil encontrar algo ya hecho que se adecue a nuestras necesidades, realizar nuestro propio script puede ser un ejercicio interesante. En The Shadow Fox Network hay publicado un tutorial con todos los pasos a seguir para crear nuestra propia galería, con todas las funciones básicas e incluso efectos y un slideshow en javascript, creado con la librería script.aculo.us.
How To Make Your Own Image Gallery With An Administration
Via dzone
Hace tiempo conocía PHP Ya, una excelente forma de aprender PHP. Hoy, gracias a Bitacora de Webmaster (da gusto verlos de vuelta) descubro que la familia ha crecido con la incorporación de Javascript Ya y CSS Ya.
Javascript Ya y CSS Ya están también destinadas al aprendizaje desde cero de los lenguajes, con tutoriales y ejercicios. Ideal para iniciarse en el desarrollo web ¿no creéis?
PHP Ya: http://www.phpya.com.ar
Javascript Ya: http://www.javascriptya.com.ar/
CSS Ya: http://www.cssya.com.ar/
La parte más importante de la programación, además de la programación propiamente dicha, es la comprobación de errores (y, por supuesto, su corrección).
En PHP existen basicamente dos tipos de errores: los que arrojan un mensaje de error (warnings, parse error …) y los errores funcionales, que no arrojan ningún error pero impiden que el script funcione de forma adecuada.
Para detectar y, por tanto, solucionar este segundo tipo de errores se hace imprescindible realizar un buen debug.
En PHP-Hispano.net nos dejan un estupendo tutorial:
Debug en PHP
Si alguna vez has utilizado servicios como TinyURL para ayudarte a recordar enlaces, haciéndolos mas legibles te gustará Shorty.
Con Shorty podrás crear redirecciones cortas basadas en tu nombre de dominio, con la ventaja de que, al ir alojado en tu propio servidor las redirecciones permanecerán activas tanto tiempo como tu consideres oportuno (o conserves el dominio).
En el panel de control podrás, además, acceder a estadísticas y controlar tus enlaces de forma sencilla

Para instalar Shorty, tu servidor debe contar con PHP 4+, MySQL 3.23+, y Apache 1.2+. Para acceder al panel de control deberás utilizar navegadores como Firefox o Safari, no funciona con Internet Explorer.
Shorty: http://get-shorty.com/
Edición: Alex de Buayacorp nos indica en un comentario que el código no es seguro así que evitad usarlo en entornos de producción.
Webmaster Libre es un blog de Alma Fernández Página alojada en Redcoruna