en: Programacion
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.
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.
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.”;
}
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”.
8 Respuestas a Seguridad Php (1ª Parte)
Anónimo
25 de Enero de 2007 a las 6:17 pm
ummmmm
manu
25 de Enero de 2007 a las 6:29 pm
aqui http://tufuncion.com/php_seguridad_II
Gonzalo
30 de Mayo de 2007 a las 4:51 pm
Estimado,
Estoy documentando un sitio desarrollado con PHP y es enorme. Tu conoces de alguna herramienta que me entregue dependencias de php entre si.
Lo que requiero es que si hay funciones que son usadas por más de un programa, sepamos cuáles páginas las usan y si hay include lo mismo. Esto nos permitirá medir el efecto que puede producir su cambio. Una especie de matriz de trazabilidad.
Muchas Gracias
angelinhox
2 de Junio de 2008 a las 5:11 pm
hola sabes que estoy haciendo mi pagina la cual deceo crear un control de usuario y a la vez quiero bloquear las url para que ningun hacker intente votarme la pagina si tienes algunas de aquellas instrucciones te estaria muy agradecido.. bueno saludos a todos y me encanto esta pagina.chau
albert
11 de Enero de 2008 a las 10:27 am
¬¬
Monica
17 de Diciembre de 2008 a las 1:04 pm
mE AGRADA ESTE TUTOTRIAL QUES ETA MUY INTERSANTE PUES
wilson
27 de Febrero de 2009 a las 4:51 pm
estoy desarrollando una pagina web y quisiera me ayuden en la autenticación por seciones encriptando la clave GRACIAS
Seguridad en PHP | Blog de DataOne Technologies
21 de Enero de 2010 a las 5:32 pm
[...] He encontrado un interesante artículo en español, acerca de la seguridad php desde el punto de vista del programador, es fácil de entender y pone varios ejemplo acerca de lo que no debe hacerse (click aquí) [...]