Palabras/Letras reservadas en clase TGet

Palabras/Letras reservadas en clase TGet

Postby Raymundo Islas M. » Tue Jul 27, 2010 11:15 pm

Antonio/Daniel,

Estoy viendo como evitar que se introduzcan algunas letras o palabras en algunos GETs, esto para que no se pueda hacer el famoso "injection" y hacer validaciones en todos lados va a estar de locos !!

Viendo la clase creo que seria en el Metodo lValid, pero no quisiera hacer algo que podria ocasionar mas problemas que soluciones :?

Podrian apoyarme en la modificacion/ajuste para lograr tal acometido.

Muchas Gracias


Saludos
FWH 10.6 + xHarbour + Borland 582
User avatar
Raymundo Islas M.
 
Posts: 592
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Re: Palabras/Letras reservadas en clase TGet

Postby Raymundo Islas M. » Fri Jul 30, 2010 1:05 am

Antonio/Daniel,

Alguna sugerencia ?

:roll:
FWH 10.6 + xHarbour + Borland 582
User avatar
Raymundo Islas M.
 
Posts: 592
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Re: Palabras/Letras reservadas en clase TGet

Postby Antonio Linares » Fri Jul 30, 2010 9:19 am

Raymundo,

Que palabras no quieres permitir ?

Puedes usar el VALID ó el ON CHANGE si quieres que nada más escribirlo ya lo rechaze, antes de intentar pasar a otro control.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41901
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Palabras/Letras reservadas en clase TGet

Postby Raymundo Islas M. » Fri Jul 30, 2010 4:03 pm

Antonio,

Me explico un poco mas :

En un dialog para ingresar un item nuevo al catalogo tengo digamos unos 30 datos por llenar todos diferentes : fechas, numericos, textos, etc.
Al momento de grabar el registro, meto todos los datos a un arreglo que mando a una funcion, esta funcion se encarga en "convertirlo" en comando MySql para agregarlo a la tabla.
Code: Select all  Expand view
aadd( aVpDts2Sav, { nKFol2Psd,aVtaDts[1],date(),cXOprTim,aVtaDts[ 4],aKurUsr[1], ;
    lbCapVta:aArrayData[nQ,1],lbCapVta:aArrayData[nQ,3],lbCapVta:aArrayData[nQ,4], ;
    lbCapVta:aArrayData[nQ,5],lbCapVta:aArrayData[nQ,6],lbCapVta:aArrayData[nQ,7], ;
    lbCapVta:aArrayData[nQ,8],cOprXStr,cObs2Sav } )

    NwInsReks( "VTASPSD", cVpFlds2Sav, aVpDts2Sav )

Y me regresa algo como esto :

INSERT INTO VTASPSD ( pidcns,poprt,poprd,poprx,pcstid,pitmusr,pitmid,pitmuntx,pitmuns,pitmdscp,pitmdsci,pitmunty,pitmimp,pitmdet,poprobs,cubx ) VALUES ( 110.00,1,'2010-07-30','10:50:51',756,'','VcYgeqVqz',0.00,1.00,0,0,0.00,0.0000,'{ ´VcYgeqVqz´, ´SYD RESORTE TRAS´, 0.00, 1.00, 0, 0, 0.00, 0.0000, ´F4304´, ´x4bclhiFZ´, 0, 1, 0, ´SYF4304´, 0, ´´, ´´, ´SYD´, ´RESORTE SUSPENSION/MISC´, ´5N3zfN1jT´, 0.00, 0, 0 }','',101 ) ;
 

Y solo hasta que le llega el dato a la funcion puedo saber si hay algo que no deba procesarse, hablando del "injection" puede ser algun comando, o todo caso un caracter : ' \
Esto es lo que quisiera poder "atrapar" desde que estan tecleando, como bien dices lo puedo hacer con un valid pero tendria que ponerselo en todos lados, si es posible dentro de la clase, todo seria en automatico.

Saludos
FWH 10.6 + xHarbour + Borland 582
User avatar
Raymundo Islas M.
 
Posts: 592
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Re: Palabras/Letras reservadas en clase TGet

Postby Raymundo Islas M. » Fri Jul 30, 2010 4:07 pm

2da parte :

Hablando de palabras : CREATE USER, DELETE FROM, INSERT INTO, SHOW, etc, etc



PD : Al momento de escribir un mensaje de unas 15 lineas, llega el momento que la pantalla esta "brincando" cada letra que tecleo y "esconde" las ultimas linea, lo que hace dificil terminar el post.
Es normal ??

saludos
FWH 10.6 + xHarbour + Borland 582
User avatar
Raymundo Islas M.
 
Posts: 592
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Re: Palabras/Letras reservadas en clase TGet

Postby Antonio Linares » Fri Jul 30, 2010 9:29 pm

Raymundo,

Estas usando un GET ó un GET multilínea ?

Para textos de varias líneas debes usar un GET multilínea. Revisa samples\TestMemo.prg
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41901
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Palabras/Letras reservadas en clase TGet

Postby Antonio Linares » Fri Jul 30, 2010 9:35 pm

Raymundo,

Para no tener que modificar cada GET podrias modificar el dato bChange de la clase, aunque eso afectará a todos tus GETs.

Otra opción es convertirlo en una CLASSDATA en vez de DATA.

No se si esto te puede servir para lo que necesitas
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41901
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Palabras/Letras reservadas en clase TGet

Postby Raymundo Islas M. » Fri Jul 30, 2010 10:19 pm

Antonio,

Hasta donde recuerdo todos son Gets "normalitos" pero deja checo por si puse algun multilinea.

Cierto, cualquier ajuste que pueda hacer afectaria a todos, pero principalmente quiero validar los tipo Character.

Acerca que si tal metodo o data o classdata ese es mi gran problema : No es mi fuerte el manejo de las clases y relacionados :?

Yo quisiera tener una "lista negra" de palabras y algunas letras en un arreglo y dentro de la clase justo antes de pasar al siguiente control, validar el contenido, si existe algo impedir que avanze, tal y como se hace con las fechas, aunque no se le ponga validacion alguna, no te permite el 30 de febrero :D

Si consideras que daria mas problemas que soluciones, ni modo, me pongo a validar mis Gets manualmente ( principalmente aquellos que tienen una longitud considerable ).

Saludos
FWH 10.6 + xHarbour + Borland 582
User avatar
Raymundo Islas M.
 
Posts: 592
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Re: Palabras/Letras reservadas en clase TGet

Postby fgondi » Sat Jul 31, 2010 6:35 pm

Raymundo,

Yo he cambiado la clase tget, para controlar los caracteres incorrectos en las sql.
Con el caracter que he encontrado problemas es el apostrofe

En concreto he cambiado el método lValid

Code: Select all  Expand view

  xSetGet := Eval(::bSetGet)
  if ValType(xSetGet)='C' .and. "'" in xSetGet
    ...
  endif
 
Un saludo
Fernando González Diez
ALSIS Sistemas Informáticos
User avatar
fgondi
 
Posts: 694
Joined: Fri Oct 07, 2005 6:58 am
Location: Palencia, España

Re: Palabras/Letras reservadas en clase TGet

Postby Raymundo Islas M. » Sat Jul 31, 2010 8:16 pm

Fernando,

Es exactamente lo que intento hacer, ese canijo apostrofe me ha dado muchos problemas :P

Voy a aplicar lo que comentas para hacer unas pruebas y ver si ademas puedo "atrapar" las palabras que quiero evitar.


Muchas gracias por el tip.



Saludos
FWH 10.6 + xHarbour + Borland 582
User avatar
Raymundo Islas M.
 
Posts: 592
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 129 guests