Article View: es.comp.os.linux.programacion
Article #1543Re: PHP y seguridad
From: Claudio
Date: Sun, 23 Oct 2005 09:28
Date: Sun, 23 Oct 2005 09:28
57 lines
3819 bytes
3819 bytes
On 2005-10-22, Carleto <nombre_falso@servidor_falso.com> wrote: > Estoy haciendo una base de datos con mysql y una peque�a web en PHP para > gestionarla. El caso es que si todo va bien (esperemos que si :) ) me > plantear�a la posibilidad de ponerlo todo en un servidor para poder > acceder a ella desde cualquier ordenador conectado a internet y me > gustar�a desde el principio tener muy en cuenta el tema de la seguridad. > > Por eso me gustar�a que me aconsej�is, ya que no tengo mucha experiencia > con PHP, de hecho, es lo primero que estoy haciendo, que precauciones > debo tomar y como hacerlo para proteger m�nimamente los datos. Por empezar por alguna parte: a) es obligatorio incializar todas las variables que vayas a usar. Si haces una variable que se llame $email, no empiezas con $email .= "," . $nueva_direccion, sino que le pones el $email='' antes. Ya s� que hay un hack que impide que nadie meta valores de variables de este tipo desde la web, pero los servidores a veces los desconfigura el diablo. b) comprueba con mucho cuidado todas las cosas que se reciban del usuario. Comprueba con el mismo cuidado todo lo que se meta en la base de datos, "escapando" siempre las cadenas no confiables. c) Nunca llames a system. Ten mucho cuidado todo lo que pueda llamar a otras herramientas del sistema operativo. Expandir shells es el punto m�s cr�tico, pero no el �nico. d) No permitas que el tama�o de las cadenas que recibas bloquee tu sistema. No conf�es en las comprobaciones hechas en la parte cleinte (html, javascript) porque es lo primero que se sabe saltar cualquier aficionado. e) Si es posible, separa la presentaci�n de la parte de la l�gica. No es que evite problemas de seguridad, pero ayuda a detectarlos. Si es una aplicaci�n grande, puedes pensar si te merece la pena separarla en partes "estancas", con comprobaciones de seguridad entre ellas. f) Aseg�rate de que la subida de ficheros a tu servidor es inocua: que no se puedan dejarlos en cualquier lugar (pej poniendo / o .. en el path), que no te llenen el espacio aunque te env�en millones de ellos. g) Las cuestiones de seguridad hay que tenerlas en cuenta en el momento del an�lisis, no hay que esperar a la codificaci�n. h) si la aplicaci�n tiene visitantes no confiables y es compleja o est� sometida a muchos cambios, protege los datos que puedas (base de datos, filesystem) d�ndoles permisos de s�lo lectura (o no lectura si es posible). As� evitar�s p�rdidas o problemas incluso en los casos de error absoluto. Una medida de seguridad b�sica y nada costosa es prohibir hacer un drop table al usuario que se usa para conectar la base de datos a la web. Un saludo. --claudio--
Technical Details
Message-ID:
<slrndlmlt5.uov.claudio@example.org>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newsfeed.hal-mli.net!feeder1.hal-mli.net!antonio.escomposlinux.org!cernicalo.escomposlinux.org!escomposlinux.org!news-15.escomposlinux.org!not-for-mailReferences:
<435a9801$0$41140$14726298@news.sunsite.dk>Show Full Headers
Complete Article Headers
X-Google-Thread: f86c8,c0f1faa7c65ce95a X-Google-Attributes: gidf86c8,public X-Google-Language: SPANISH,ASCII Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newsfeed.hal-mli.net!feeder1.hal-mli.net!antonio.escomposlinux.org!cernicalo.escomposlinux.org!escomposlinux.org!news-15.escomposlinux.org!not-for-mail From: Claudio <claudio@example.org> Newsgroups: es.comp.os.linux.programacion Subject: Re: PHP y seguridad Date: Sun, 23 Oct 2005 09:28:05 +0000 (UTC) Organization: ninguna Lines: 58 Message-ID: <slrndlmlt5.uov.claudio@example.org> References: <435a9801$0$41140$14726298@news.sunsite.dk> NNTP-Posting-Host: localhost.escomposlinux.org Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Trace: huron.algomas.org 1130059685 31887 127.0.0.1 (23 Oct 2005 09:28:05 GMT) X-Complaints-To: netnews@news-15.escomposlinux.org NNTP-Posting-Date: Sun, 23 Oct 2005 09:28:05 +0000 (UTC) User-Agent: slrn/0.9.8.1pl1 (Debian)