> Manuales > Orientación a objetos con PHP

PHP es una lengua muy fácil a aprender, y muchos programadores lo aprenden como manera de agregar interactividad a sus Sitio Web.

Desafortunadamente, eso significa a menudo los programadores de PHP, especialmente ésos más nuevos al desarrollo web, cometen ciertos riesgos de seguridad y desaprovechan el potencial que sus usos pueden contener. Aquí están algunos de los problemas mas comunes de seguridad y cómo evitarlos.

Regla número uno: Nunca, confiar en los usuarios

Nunca debes confiar en que los usuarios te van a mandar los datos que tu esperas. Mucha gente responde a esto con algo como“Oh, nadie estaría interesado en mi sitio”. Esta afirmación no podría ser mas incorrecta , siempre hay un usuario malévolo que quiere explotar un agujero de seguridad ademas los problemas pueden presentarse fácilmente debido a un usuario que hace algo mal inintencionalmente.

Por todo esto la regla de todo desarrollador web tiene que ser "Nunca, confiar en los usuarios" . Asumir que cada pieza de datos que tu sitio recoge de un usuario puede convertirse en un agujero de seguridad, siempre. Si la seguridad de tu sitio web es importante para ti, este un buen puntopara comenzar a aprender. Sería conveniente tener “una hoja de seguridad para PHP” al lado de tu escritorio con los puntos mas importantes en texto negrita grande.

Variables globales

En muchas lenguajes debes crear explícitamente un variable para utilizarlas. En PHP, hay una opción, las “register_globals”, que puedes fijar en php.ini y que permite que utilices variables globales.

Considera el código siguiente:

if ($password == "my_password") {

$authorized = 1;

}

if ($authorized == 1) {

echo "Mis cosas importantes ";

}

A muchos de vosotrosos puede parecer que este código esta funcionando perfectamente. ¿Sin embargo, si un servidor tiene “register_globals” encendidos, entonces simplemente agregando”? authorized=1 " al URL dará a cualquier persona el acceso libre a exactamentelo que no quisieras que todo el mundo viera. Éste es uno de los problemas mas comunes de la seguridad de PHP.

Afortunadamente, esto tiene un par de soluciones simples y posibles. La primera, y quizás la mejor, es fijar desactivar “register_globals”. La segunda es asegurarse de que utilizas solamente las variables que has fijado explícitamente tú mismo. En el ejemplo anterior, eso significaría la adición “$authorized = 0; ” al principio de la escritura:

$authorized = 0;

if ($password == "my_password") {

$authorized = 1;

}

if ($authorized == 1) {

echo "Lots of important stuff.";

}

Mensajes de error

Los mensajes de error son una herramienta muy útil para los programadores y hackers. Un desarrollador los necesita para detectar bugs. Un hacker puede utilizarlos para descubrir todas las clases de información sobre un sitio, desde la estructura del directorio del servidor a la información de la conexión de la base de datos.En PHP para evitar esto puedes utilizar .htaccess o php.ini, fijando “error_reporting” a “0”.

Manu Gutierrez

Manual