Foros del Web » Programando para Internet » PHP »

Seguridad en PHP

Estas en el tema de Seguridad en PHP en el foro de PHP en Foros del Web. Sé que hay muchas páginas que hablan de la seguridad en PHP. Pero como ninguna enlaza todos los aspectos que hay que tener en cuenta ...
  #1 (permalink)  
Antiguo 15/12/2011, 01:12
Avatar de neb642  
Fecha de Ingreso: noviembre-2010
Ubicación: Argentina
Mensajes: 29
Antigüedad: 14 años
Puntos: 3
Seguridad en PHP

Sé que hay muchas páginas que hablan de la seguridad en PHP. Pero como ninguna enlaza todos los aspectos que hay que tener en cuenta para que una vez que suba una página no me haya encontrado al día siguiente con que han hecho una Inyección SQL... En fin, estoy trabajando con AJAX (jQuery) y PHP, y me sería de gran ayuda si alguien que ya haya pasado por mi camino me diga si con estas medidas es suficiente:

PHP:

* htmlentities()

*utf8_decode()

Javascript:

* encodeURIComponent()


------------------------------------------------------------------------

No tendré problemas si envío datos con javascript con esa función y luego con PHP utilizo aquellas dos para decodificar los datos? (De seguridad y de conversión de datos también) Aclaro que en los archivos html utilizo utf8

Bueno gracias de antemano, suerte.
  #2 (permalink)  
Antiguo 15/12/2011, 01:18
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años, 6 meses
Puntos: 322
Respuesta: Seguridad en PHP

Te recomiendo comenzar investigando sobre los tipos de ataques posibles a nivel general, es decir, CSRF, XSS, SQLi. Descubrirás que no se limita a escapar caracteres.
Por otro lado, en los SQLi, por ejemplo, descubriras que caracteres si se deben escapar.

Saludos!

PD: Ahí te falta escapar SQLi, se logra normalmente con mysql_real_escape_string
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #3 (permalink)  
Antiguo 17/12/2011, 01:46
Avatar de neb642  
Fecha de Ingreso: noviembre-2010
Ubicación: Argentina
Mensajes: 29
Antigüedad: 14 años
Puntos: 3
Respuesta: Seguridad en PHP

Gracias por tu ayuda, sourcegeek. Ahora mi página ya no es vulnerable a inyecciones sql. Pero tengo una pregunta, he usado estas funciones:

htmlentities, utf8decode, y mysql_real_escape_string en una variable recibida por POST, y al ingresar una comilla doble, luego cuando la muestro veo \" , entonces como quería verla otra vez como comilla doble usé html_entity_decode y no funciona. Por qué?

En definitiva me pregunto, cuándo debo codificar y cuándo codificar. Saludos
  #4 (permalink)  
Antiguo 17/12/2011, 01:57
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años, 6 meses
Puntos: 322
Respuesta: Seguridad en PHP

No te funciona porque el que añade barras invertidas a las comillas es mysql_real_escape_string. La 'contraparte' de ésta es stripslashes.

http://www.php.net/manual/es/function.stripslashes.php
Saludos!
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #5 (permalink)  
Antiguo 17/12/2011, 11:00
 
Fecha de Ingreso: enero-2011
Ubicación: Argentina
Mensajes: 80
Antigüedad: 13 años, 9 meses
Puntos: 12
Respuesta: Seguridad en PHP

Yo utilizo para protegerme de ataques XSS la clase InputFilter.


PHP Input Filter (xss, inputfilter, daniel, security code) - PHP Classes
Class: PHP Input Filter - Enlace para descargarla

Post en español para aprender a utilizarla
Prevenir ataques XSS con PHP

Nota: Es del 2005 quizás algo se le escape a la fecha (habría que averiguar)

Saludos
  #6 (permalink)  
Antiguo 17/12/2011, 11:29
Avatar de Chico3001  
Fecha de Ingreso: septiembre-2011
Ubicación: Mexico, DF
Mensajes: 112
Antigüedad: 13 años, 2 meses
Puntos: 12
Respuesta: Seguridad en PHP

Aqui te dejo una muy buena guia de seguridad en ingles

http://phpsec.org/projects/guide/1.html
  #7 (permalink)  
Antiguo 18/12/2011, 15:07
Avatar de neb642  
Fecha de Ingreso: noviembre-2010
Ubicación: Argentina
Mensajes: 29
Antigüedad: 14 años
Puntos: 3
Respuesta: Seguridad en PHP

Gracias a los tres. Voy a leer lo que me pasaron, mientras les cuento que solucioné mi problema alternando el orden de las funciones:

El envío mediante JS lo hago con encodeURIComponent, y con PHP primero recibo los datos y aplico utf8_decode, luego htmlentities, y a lo ultimo mysql_real_escape_string.

Saludos

Última edición por neb642; 18/12/2011 a las 23:30

Etiquetas: caracteres, decodificar, seguridad
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 13:00.