Foros del Web » Programando para Internet » ASP Clásico »

Entender este código simple

Estas en el tema de Entender este código simple en el foro de ASP Clásico en Foros del Web. Hola, por más que le doy vueltas no puedo entender este código que genera el dreamweaver en las consultas a BD: Código: <% variable1 = ...
  #1 (permalink)  
Antiguo 29/03/2002, 16:24
Avatar de Sir Matrix  
Fecha de Ingreso: octubre-2000
Ubicación: Dentro de mi cabeza. ono?
Mensajes: 1.264
Antigüedad: 24 años, 7 meses
Puntos: 3
Entender este código simple

Hola, por más que le doy vueltas no puedo entender este código que genera el dreamweaver en las consultas a BD:

Código:
<%
variable1 = Request.Form("usuario") 
variable2 = Request.Form("password") 
%>
<%
set Rs = Server.CreateObject("ADODB.Recordset")
Rs.ActiveConnection = MM_conn_STRING

'Esta es la línea que no entiendo: 
Rs.Source = "SELECT *  FROM usuarios  WHERE user= '" + Replace(variable1, "'", "''") + "' AND p_clave = '" + Replace(variable2, "'", "''") + "'"

Rs.CursorType = 0
Rs.CursorLocation = 2
Rs.LockType = 3
Rs.Open()
Rs_numRows = 0
%>
osea no entiendo cómo funciona ahí la función Replace, es que estoy probando la seguridad de mi web y con éste código se evitan ataques al código ASP (<a href='ir.asp?http://www.forosdelweb.com/mensaje.asp?id=48878&amp;r=11' target='_blank'>http://www.forosdelweb.com/mensaje.asp?i...</a>) , pero no entiendo porqué

Espero su help, saludos y gracias

<embed width="259" height="80" src="http://www.artereal.com/firma.swf">
  #2 (permalink)  
Antiguo 29/03/2002, 16:55
 
Fecha de Ingreso: febrero-2002
Ubicación: Mi ASP Bunker
Mensajes: 397
Antigüedad: 23 años, 2 meses
Puntos: 1
Re: Entender este código simple

Sir, proba poner como clave en tu sitio ( u otros ;) ) : ' or ''=' ( comillas incluidas eh ? )

Tu cadena sql quedaria :
&quot;SELECT * FROM usuarios WHERE user= '' or ''=''&quot; ... no ? entras como el 1er usuario que encuentre.

Lo que hace el Replace es reemplazar las comillas simples por 2 comillas, pero yo las elimino directamente con un Replace(variable,&quot;'&quot;,&quot;&quot;) las reemplaza con nada.

Esta ? Saludos!!
  #3 (permalink)  
Antiguo 30/03/2002, 01:35
Avatar de Sir Matrix  
Fecha de Ingreso: octubre-2000
Ubicación: Dentro de mi cabeza. ono?
Mensajes: 1.264
Antigüedad: 24 años, 7 meses
Puntos: 3
Re: Entender este código simple

Muchas gracias nochero!!

me costó un poco entender pero al final se me aclararon varias dudas, el replace lo que hace es buscar comillas simples (') y las reemplaza por dobles (o las elimina) dentro de las variables para evitar que rompan el código.

esa vendría a ser una protección que pone el dreamweaver cuando genera el código ASP.

También probé el ' or ''=' y sí funcionó algunas veces, . Está bueno saberlo.

Saludos y gracias
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 16:59.