Foros del Web » Programando para Internet » PHP »

Seguridad en página web

Estas en el tema de Seguridad en página web en el foro de PHP en Foros del Web. Hola a todos: necesito vuestra ayuda. Tengo un formulario que envía un registro a la base de datos mysql a través de un procedimiento PHP. ...
  #1 (permalink)  
Antiguo 11/05/2009, 15:12
 
Fecha de Ingreso: junio-2008
Ubicación: Valencia (España)
Mensajes: 132
Antigüedad: 15 años, 11 meses
Puntos: 1
Seguridad en página web

Hola a todos: necesito vuestra ayuda. Tengo un formulario que envía un registro a la base de datos mysql a través de un procedimiento PHP. Necesito que dicho envío se produzca de forma segura pero que permita la inclusión de símbolos como el apóstrofe (comilla simple).

He leido que debería incorporar la función htmlentities pero desconozco si con eso es suficiente o necesito incluir alguna función más o algún procedimiento adicional de forma que no puedan incluir código maligno en mi base de datos.

Por otra parte, como empleo esta función, al devolverme los valores de la base de datos, si los imprimo en la página me aparecen los acentos con caracteres extraños. ¿Como hago para deshacer lo que hace la función htmlentities?

Espero vuestras respuestas a la dos preguntas. Muchas gracias de antemano.
  #2 (permalink)  
Antiguo 11/05/2009, 15:31
 
Fecha de Ingreso: febrero-2008
Mensajes: 269
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: Seguridad en página web

Bueno, igual que hay una para hacer, hay otra para deshacer html_entity_decode(), usando esa funcion devuelve el formato original.

http://es2.php.net/manual/es/functio...ity-decode.php
  #3 (permalink)  
Antiguo 17/05/2009, 14:27
 
Fecha de Ingreso: junio-2008
Ubicación: Valencia (España)
Mensajes: 132
Antigüedad: 15 años, 11 meses
Puntos: 1
Respuesta: Seguridad en página web

Muchas gracias Vendetta por tu respuesta pero únicamente has respondido a una de las preguntas. ¿Me podéis ayudar por favor?

Os repito la pregunta: "Hola a todos: necesito vuestra ayuda. Tengo un formulario que envía un registro a la base de datos mysql a través de un procedimiento PHP. Necesito que dicho envío se produzca de forma segura pero que permita la inclusión de símbolos como el apóstrofe (comilla simple).
He leido que debería incorporar la función htmlentities pero desconozco si con eso es suficiente o necesito incluir alguna función más o algún procedimiento adicional de forma que no puedan incluir código maligno en mi base de datos."

Espero vuestras respuestas para poder quedarme tranquilo. Muchas gracias por vuestra inestimable y desinteresada ayuda.
  #4 (permalink)  
Antiguo 17/05/2009, 14:41
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Seguridad en página web

Puedes usar addslashes() con eso puedes insertar las comillas.

Saludos.
  #5 (permalink)  
Antiguo 27/05/2009, 15:48
 
Fecha de Ingreso: junio-2008
Ubicación: Valencia (España)
Mensajes: 132
Antigüedad: 15 años, 11 meses
Puntos: 1
Respuesta: Seguridad en página web

Cita:
Iniciado por GatorV Ver Mensaje
Puedes usar addslashes() con eso puedes insertar las comillas.

Saludos.


¿Con esto es suficiente? ¿Con nesto ya no tendría que preocuparme por posibles fallos de seguridad?

Espero vuestra ayuda. Gracias.
  #6 (permalink)  
Antiguo 27/05/2009, 16:23
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Seguridad en página web

No, addslashes no es magia, sirve para lo que buscas especificamente que es insertar datos con apostrofes.

El tema de seguridad es muy amplio y no hay una sola funcion magica que proteja todo, lee sobre XSS Inyection, SQL Inyection, para que te des una idea como tienes que proteger.

Saludos.
  #7 (permalink)  
Antiguo 30/06/2009, 09:57
 
Fecha de Ingreso: junio-2008
Ubicación: Valencia (España)
Mensajes: 132
Antigüedad: 15 años, 11 meses
Puntos: 1
Respuesta: Seguridad en página web

Cita:
Iniciado por GatorV Ver Mensaje
No, addslashes no es magia, sirve para lo que buscas especificamente que es insertar datos con apostrofes.

El tema de seguridad es muy amplio y no hay una sola funcion magica que proteja todo, lee sobre XSS Inyection, SQL Inyection, para que te des una idea como tienes que proteger.

Saludos.

Gracias por tu aporte:

He estado mirando cosas al respecto y quisiera saber si es suficiente con esta función:

function limpiador_variables ($vble) {
$vble = strip_tags ($vble);
$vble = stripslashes ($vble);
$vble = htmlentities ($vble);
return $vble;
}


Por favor, desconozco si este código convierte mi variable en segura o consideráis que debo incluir algo más. Espero vuestra ayuda. Gracias a todos.
  #8 (permalink)  
Antiguo 30/06/2009, 10:46
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Seguridad en página web

Depende como te comento no hay una función magica para todas las variables, tienes que ocupar una función especifica para el tipo de variable que quieras limpiar, ya que no puedes ocupar el mismo criterio si el tipo de dato es un número, o una cadena, o si es una fecha.

Saludos.
  #9 (permalink)  
Antiguo 30/06/2009, 11:20
 
Fecha de Ingreso: junio-2008
Ubicación: Valencia (España)
Mensajes: 132
Antigüedad: 15 años, 11 meses
Puntos: 1
Respuesta: Seguridad en página web

Cita:
Iniciado por GatorV Ver Mensaje
Depende como te comento no hay una función magica para todas las variables, tienes que ocupar una función especifica para el tipo de variable que quieras limpiar, ya que no puedes ocupar el mismo criterio si el tipo de dato es un número, o una cadena, o si es una fecha.

Saludos.

Por favor, intenta ser más explícito:

1.- ¿Este regla sirve para nombres de usuarios o habría que utilizar alguna otra función o bien sobra alguna función? Si no sirve, por favor indícame qué falta o qué sobra.

2.- De la misma forma: ¿Sirve para texto? Exclusivamente para texto sin números ¿Valdría esta función o habría que poner algo más o quitar algo?

3.- Por último, ¿Sirve para las passwords? Lógicamente una password puede llevar texto y números pero no fechas. ¿Sirve esta función o habría que poner o quitar algo?

Disculpa si soy muy reiterativo pero no domino el lenguaje. He aprendido lo justo para “andar por casa” y el tema de la seguridad es una “asignatura pendiente”.

Muchas gracias por vuestro apoyo. Saludos
  #10 (permalink)  
Antiguo 30/06/2009, 19:21
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Seguridad en página web

El codigo que expones hace lo siguiente:
1.- Quita todos los tags HTML que vengan en la variable.
2.- Quita las diagonales invertidas que tenga tu cadena.
3.- Convierte los caracteres restantes en su entidad html.

Ahora te pregunto a ti, ¿eso te sirve para lo que deseas? Si cumple con tus requerimientos entonces es una buena función, si no te sirve entonces hay que modificarlo.

Por otro lado no veo el caso de usar stripslashes si lo que quieres es implementar protección contra un ataque de SQL Inyection entonces debes de usar addslashes, y antes comprobar el valor de las magic_quotes porque si estan activadas te va dar problemas ya que la cadena ya viene escapada.

Como te comento no hay una función universal que limpie todas las variables, debes de aplicar la que más te sirva para tus necesidades especificas, si es un número con un simple (int) para pasar el valor te sirve.

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:56.