🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: es.comp.os.linux.programacion
4 messages
4 total messages Started by Carleto Sat, 22 Oct 2005 19:52
PHP y seguridad
#1542
Author: Carleto
Date: Sat, 22 Oct 2005 19:52
11 lines
1620 bytes
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.

Muchas gracias
Re: PHP y seguridad
#1543
Author: Claudio
Date: Sun, 23 Oct 2005 09:28
57 lines
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--
Re: PHP y seguridad
#1544
Author: Carleto
Date: Sun, 23 Oct 2005 16:18
12 lines
1426 bytes
> Por empezar por alguna parte:
> 

Esto si que es un buen consejo, muchas gracias Claudio. Tendr� todo esto
en cuenta desde el principio, lo que no quiero es pegarme el lote
programando y si dentro de un tiempo decido subirlo todo a un servidor
tener que modificar todo por culpa de la seguridad. Prefiero hacerlo
todo "mas o menos" bien desde el principio.

Muchas gracias

Saludos
Re: PHP y seguridad
#1558
Author: Alberto Cabello Sanchez
Date: Mon, 31 Oct 2005 16:05
24 lines
2279 bytes
Carleto 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.
> 
> Muchas gracias

Si puedes, pon register globals a off, para que unas variables no se 
pisen a otras.
Ojo con los include y require.
Haz que cada variable pueda contener s�lo los datos que deba contener 
para funcionar bien (n�meros, alfanum�ricos, ... ).
Vigila que las consultas est�n bien construidas. En particular, f�jate 
en el t�pico:
SELECT campos FROM tablas WHERE tabla_id=$id
y comprueba lo que pasa si pones $id = "3; delete from tabla"

y lo que te ha dicho claudio.
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads