El Comercio Digital

Webmaster Libre

Desarrollo Web con Software Libre

Estás navegando por el archivo de la categoría PHP

Asegurando una instalación de PHP

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.

  1. Deshabilitar las URL remotas para funciones que manejen archivos:

    allow_url_fopen = Off

  2. Register Globals

    register_globals = Off

  3. Restringiendo lo que PHP puede leer o escribir

    open_basedir = /var/www/htdocs/files

  4. Safe Mode

    safe_mode = Off
    safe_mode_gid = On

  5. Límites para los tiempos de ejecución

    max_execution_time = 30 ; Max script execution time
    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

  6. Limitar el acceso a ciertos tipos de archivos mediante directivas de Apache


    Order allow,deny
    Deny from all

  7. Mensajes de error y logging

    display_errors = Off
    log_errors = On

  8. Ocultar la presencia de PHP

    expose_php = Off

Resumen

Todos los cambios realizados quedan concretados en un php.ini tal que así:

; php.ini
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

# Apache configuration or .htaccess

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

PHP

3 Comentarios

10 cosas que cualquier desarrollador de PHP debe saber

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

Enlaces, PHP

Comenta

Trabajar con archivos y directorios con PHP

En FYIcenter han publicado un estupendo artículo con 8 consejos para trabajar con archivos y directorios desde PHP

  1. ¿Cómo crear un directorio?
  2. ¿Cómo borrar un directorio vacio?
  3. ¿Cómo borrar un archivo?
  4. ¿Cómo copiar un archivo?
  5. ¿Cómo volcar los contenidos de un directorio en un Array?
  6. ¿Cómo leer un directorio una entrada de cada vez?
  7. ¿Cómo obtener el nombre de un directorio en base a la ruta de un archivo?
  8. ¿Cómo dividir en partes la ruta a un archivo?

PHP Script Tips – Working with Directoris and Files

Via Pixel Groovy

Enlaces, PHP

3 Comentarios

Bloquear el acceso a la página de login tras 3 intentos fallidos

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

Enlaces, PHP

4 Comentarios

Incluir archivos con PHP

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.

include() y require()

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
< ? php
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.
< ? php
require("./funciones.php")
?>

(más…)

PHP

4 Comentarios

Crea tu propia galería de imágenes con PHP y Script.aculo.us

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

Galerias, Javascript, PHP

4 Comentarios

Unos de PHP

Enlaces, PHP

Comenta

CSS Ya y Javascript Ya

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/

CSS, Javascript, PHP, Recursos

Comenta

Debug en PHP

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

Enlaces, PHP

Comenta

Abreviando URL con Shorty

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

Interfaz de Administracion de Shorty

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.

Miscelaneos, PHP, Recursos, Scripts

3 Comentarios

Información:

Webmaster Libre es un blog de Alma Fernández Página alojada en Redcoruna