Una pregunta estúpida sobre los ataques de inyección SQL en PHP....

  • RedBMedia
  • Proficient
  • Proficient
  • Avatar de Usuario
  • Registrado: May 01, 2007
  • Mensajes: 315
  • Status: Offline

Nota Mayo 13th, 2010, 12:10 pm

Así que hasta aquí he estado utilizando mysql_real_escape_string () para limpiar los datos entrantes antes de que llegue el PP. Pero, al mirar hacia atrás en mi código me he dado cuenta por alguna razón que sólo se utiliza cuando la instrucción SQL fue la inserción de datos. Ahora he mirado este ejemplo y utilizan mysql_real_escape_string () aun cuando seleccionar ción de información. Por lo tanto, tengo que volver atrás y cambiar todo mi código? E incluyen mysql_real_escape_string () cuando se selecciona en el PP también?
Joe Hall
  • Anonymous
  • Bot
  • No Avatar
  • Registrado: 25 Feb 2008
  • Mensajes: ?
  • Loc: Ozzuland
  • Status: Online

Nota Mayo 13th, 2010, 12:10 pm

  • joebert
  • Sledgehammer
  • Genius
  • No Avatar
  • Registrado: Feb 10, 2004
  • Mensajes: 13455
  • Loc: Florida
  • Status: Offline

Nota Mayo 13th, 2010, 2:03 pm

Cada consulta tiene que tiene una sección que se construyó utilizando los datos facilitados por el usuario, debe ser controlada. Cada consulta, SELECT, INSERT, DELETE, etc Cada uno.

Los datos presentados por el usuario incluye (pero no limitados a) $ _GET, $ _POST, $ _COOKIE y variables, así como las variables que no se dan cuenta que vienen desde los usuarios a primera vista, tales como $ _SERVER ["HTTP_REFERER" [] o $ _SERVER "HTTP_ACCEPT_LANGUAGE"]
Strong with this one, the sudo is.
  • RedBMedia
  • Proficient
  • Proficient
  • Avatar de Usuario
  • Registrado: May 01, 2007
  • Mensajes: 315
  • Status: Offline

Nota Mayo 13th, 2010, 2:19 pm

joebert escribió:
Cada consulta tiene que tiene una sección que se construyó utilizando los datos facilitados por el usuario, debe ser controlada. Cada consulta, SELECT, INSERT, DELETE, etc Cada uno.

Los datos presentados por el usuario incluye (pero no limitados a) $ _GET, $ _POST, $ _COOKIE y variables, así como las variables que no se dan cuenta que vienen desde los usuarios a primera vista, tales como $ _SERVER ["HTTP_REFERER" [] o $ _SERVER "HTTP_ACCEPT_LANGUAGE"]


Gracias por la punta.... Así, ¿cómo un atacante pulse el código malicioso a través de la matriz $ _SERVER?
Joe Hall
  • joebert
  • Sledgehammer
  • Genius
  • No Avatar
  • Registrado: Feb 10, 2004
  • Mensajes: 13455
  • Loc: Florida
  • Status: Offline

Nota Mayo 13th, 2010, 3:03 pm

El array $ _SERVER generalmente incluye cosas de cabeceras de petición HTTP, cosas como el referente, el carácter aceptan los conjuntos y codificaciones, idioma preferido, etc

Por ejemplo, si usted tiene algo que los registros de $ _SERVER ["HTTP_REFERRER"] para la base de datos, usted querrá que la ponga al mismo, ya que pueden contener datos erróneos tan fácilmente como GET o POST puede.
Strong with this one, the sudo is.
  • RedBMedia
  • Proficient
  • Proficient
  • Avatar de Usuario
  • Registrado: May 01, 2007
  • Mensajes: 315
  • Status: Offline

Nota Mayo 13th, 2010, 3:15 pm

Ah, ya entiendo, por lo que el atacante puede falsificar el encabezado..... Nunca pensé en eso.
Joe Hall
  • joebert
  • Sledgehammer
  • Genius
  • No Avatar
  • Registrado: Feb 10, 2004
  • Mensajes: 13455
  • Loc: Florida
  • Status: Offline

Nota Mayo 13th, 2010, 4:25 pm

Lo que yo hago la hora de decidir si debía pantalla algo me pregunto la pregunta " ¿Es esto algo que el servidor podría generar, incluso sin una petición de un usuario ? ", Si la respuesta es NO, los datos son inmediatamente sometidos al cribado. Si la respuesta es sí, es algo que el servidor podría generar sin la solicitud de un usuario, miro y veo si su algo que el servidor genera por sí sola, o si su algo que el servidor se anulan con datos presentados por el usuario antes de decidir si lo pantalla.

Un caso extremo sería de $ _SERVER ["QUERY_STRING"], sé que el servidor genera esta variable, pero también sé que la generada por el usuario los datos presentados.

De Theres $ _SERVER ["REMOTE_PORT"], que técnicamente es enviado por el usuario, pero si eso fue falso entonces la comunicación TCP nunca habría dejado que la solicitud llega a la secuencia de comandos en el primer lugar. Siento que puedo confiar en esta variable en particular, aunque si ya se siente Im me parahnoid de tipo que podría emitidos.

PHP Código: [ Select ]
$rport = (int)$_SERVER['REMOTE_PORT'];
Strong with this one, the sudo is.

Publicar Información

  • Total de mensajes en este tema: 6 mensajes
  • Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 104 invitados
  • No puede abrir nuevos temas en este Foro
  • No puede responder a temas en este Foro
  • No puede editar sus mensajes en este Foro
  • No puede borrar sus mensajes en este Foro
  • No puede enviar adjuntos en este Foro
 
 

© 2011 Unmelted, LLC. Ozzu® es una marca registrada de Unmelted, LLC