validacion de cliente y de servidor

11/10/2005 - 19:29 por Enrique | Informe spam
hola a todos,

en mis recientes post, os he preguntado sobre la validacion y si he
entendido bien: existe "validacion de cliente", normalmente en Javascript
que es una validacion rapida pero poco segura y la "validacion de servidor"
en cualquier lenguaje de script que es una validacion segura pero mas lenta.
por lo visto, se prefiere usar la "validacion de cliente" porque evita
accesos inecesarios al servidor lo que puede ser molesto tanto para el
usuario como para nuestro servidor que se carga inutilmente.
pero por otro lado, he leido que la "validacion de cliente" no debe evitar
la "validacion de servidor" porque aunque se haga el submit del lado del
cliente, cualquier usuario con algo de conocimients y mal intencionados
puede crear un formulario con valores determinados que "ataque" a nuestro
servidor.

ahi van las preguntas:
¿que se suele usar normalmente?¿validacion de cliente?¿de servidor? ¿ambos a
la vez?¿ninguna?
si ademas de la "validacion de cliente", usamos la "validacion de servidor",
¿se repite ciertas "validaciones de cliente" o son validaciones distintas?

imaginemos que tengo 2 textbox A y B. A debe tener datos, nada mas. B debe
tener una fecha. ¿me podrias dar un ejemplo generico (sin implementar las
funciones Javascript) que me muestre como se llama una funcion que se usa
con el "onSubmit" que supongo a su vez debe llamar a las 2 otras funciones?

...

por otro lado, he visto funciones de validacion en javascript que usan mucho
"alert" para mostrar un cuadro de dialogo con el mensaje de validacion
adecuado.
¿como se hace para insertar HTML? ¿es igual que con VBScript? ¿distinto? si
es asi, ¿como se hace?
la idea es que cuando se validan los datos de un formulario, los mensajes de
validacion aparezcan masivamente en la pagina sea al principio de la pagina
o al lado de cada campo afectado por una entrada erronea. ¿eso se puede
hacer con javascript del lado del cliente? ¿debe ser necesariamente del lado
del servidor?

mi ultima pregunta se debe al sigueinte pensamiento:
si la pagina A debe llamar a la pagina B, se debe validar primero por lo que
se crea una pagina A' entre A y B que definira si los datos se han entrado
correctamente o no y si se debe volver a la pagina A para poner los datos o
ir a la B porque todo esta perfecto. eso considero que una validacion de
servidor porque los datos de la pagina B se recogen mediante un
request.form, y si al menos uno de ellos no es correcto, se llama a la
pagina A mediante un GET y una URL codificada que permitira a esta pagina
determinar con un request.querystring, que tipo de accion debe emprender. en
este caso la accion, es simplemente mostrar en formato HTML sea al principio
de la pagina o al lado de cada control afectado por una entrada de datos
erronea un mensaje de validacion.
¿es eso correcto?¿es una validacion de servidor?

muchas gracias por sus respuestas y valiosa ayuda

Preguntas similare

Leer las respuestas

#1 Sandra y María Claudia
11/10/2005 - 20:50 | Informe spam
ya te respondi en el post anterior manten el hilo de tu post, no
estes creando post y post habiendo uno inicial. asi todos podremos
beneficiarnos y sobre todo ayudarte

____________________________________________________________________________________
SyMC
Suerte es la ayuda que te da la vida... Destino es lo que haces con esta
ayuda
Comparte con los demás, es la mejor manera de crecer y quererse más
El SP2 lo puedes bajar desde
http://www.microsoft.com/downloads/...p;FamilyID9c9dbe-3b8e-4f30-8245-9e368d3cdb5a
El artículo de JM Tella sobre como integrar SP2 con el Xp esta en
http://www.multingles.net/docs/xpsp2.htm
Ad-aware SE en español: http://www.lavasoft.de/spanish/
spywareblaster:http://www.ct7support.com/javacool/...nload.html
Spybot - Search & Destroy
1.3:http://www.zonavirus.com/descargas/spybotsd13.exe
The Cleaner http://www.moosoft.com/
CWShreader, Hijackthis http://www.majorgeeks.com/download4086.html
Respuesta Responder a este mensaje
#2 Enrique
11/10/2005 - 21:18 | Informe spam
uhmmmm. ¿crees que me has respondido a absolutamente todo? ¿nada nuevo?. de
acuerdo para seguir el hilo de mi post, pero ¿crees que se responden de
igual forma?

algunas veces si te adentras en el hilo de un post, no te responden cuando
por otro lado si lo hacen cuando es un nuevo post pero vale, a ver si
funciona. sino es asi, debere poner otros post.

por cierto aqui la novedad es el tema de 2 textbox A y B. ¿eso tambien me lo
has respondido en el otro post? :-))P



"Sandra y María Claudia" escribió en el mensaje
news:#
ya te respondi en el post anterior manten el hilo de tu post, no
estes creando post y post habiendo uno inicial. asi todos podremos
beneficiarnos y sobre todo ayudarte




____________________________________________________________________________
________
SyMC
Suerte es la ayuda que te da la vida... Destino es lo que haces con esta
ayuda
Comparte con los demás, es la mejor manera de crecer y quererse más
El SP2 lo puedes bajar desde



http://www.microsoft.com/downloads/...p;FamilyID9c
9dbe-3b8e-4f30-8245-9e368d3cdb5a
El artículo de JM Tella sobre como integrar SP2 con el Xp esta en
http://www.multingles.net/docs/xpsp2.htm
Ad-aware SE en español: http://www.lavasoft.de/spanish/



spywareblaster:http://www.ct7support.com/javacool/...ownload.ht
ml
Spybot - Search & Destroy
1.3:http://www.zonavirus.com/descargas/spybotsd13.exe
The Cleaner http://www.moosoft.com/
CWShreader, Hijackthis http://www.majorgeeks.com/download4086.html



Respuesta Responder a este mensaje
#3 Enrique
11/10/2005 - 21:23 | Informe spam
voy a aplicar todo eso. muchas gracias por tu ayuda :-)


"Matías Iacono" escribió en el mensaje
news:#
Bueno... vamos por partes :D

> por lo visto, se prefiere usar la "validacion de cliente" porque evita
> accesos inecesarios al servidor lo que puede ser molesto tanto para el
> usuario como para nuestro servidor que se carga inutilmente.

En realidad no, siempre es preferible la validacion por parte del


servidor.
Por lo general, cuando alguien va a validar algo, es porque concidera que
ese dato es critico, por ende, y como dices mas adelante, alguien con algo
de conocimientos podria hacer que todo vuele por los aires.

Ademas, si no lo validas en el servidor, puedes probocar una entrada
incorrecta, generando un error en la aplicacion.

> ¿que se suele usar normalmente?¿validacion de cliente?¿de servidor?


¿ambos
> a
> la vez?¿ninguna?
> si ademas de la "validacion de cliente", usamos la "validacion de
> servidor",
> ¿se repite ciertas "validaciones de cliente" o son validaciones


distintas?

Normalmente se usa la validacion del lado del servidor. La del cliente, es
solo para darle "color" a tu aplicacion. Es para darle dinamismo, pero


esto
no te asegura que te salves de los problemas.

Cuando validas en el cliente, lo haces con un lenguaje, cuando lo haces en
el server lo haces en otro. Asi que posiblemente la sintaxis no sea la
misma, pero la logica puede que si. De cualquier manera, si haces


referencia
a la reutilidad del codigo, pues creo que no habia casi ninguna, en el


caso
de que uses distintos lenguajes.

> imaginemos que tengo 2 textbox A y B. A debe tener datos, nada mas. B


debe
> tener una fecha. ¿me podrias dar un ejemplo generico (sin implementar


las
> funciones Javascript) que me muestre como se llama una funcion que se


usa
> con el "onSubmit" que supongo a su vez debe llamar a las 2 otras
> funciones?

Si lo haces en el cliente:

<script>
function Validar()
{
if .
{
//Si cumple
return true;
}
else
{
return false;
}
}
</script>

<form onSubmit="return Validar()">

Al colocar la llamada en el onsubmit, y retornar false o true, hace que el
submit se haga o no. De esta forma, si la condicion no se cumple, el
formulario no se aplica.

> por otro lado, he visto funciones de validacion en javascript que usan
> mucho
> "alert" para mostrar un cuadro de dialogo con el mensaje de validacion
> adecuado.
> ¿como se hace para insertar HTML? ¿es igual que con VBScript? ¿distinto?
> si
> es asi, ¿como se hace?
> la idea es que cuando se validan los datos de un formulario, los


mensajes
> de
> validacion aparezcan masivamente en la pagina sea al principio de la
> pagina
> o al lado de cada campo afectado por una entrada erronea. ¿eso se puede
> hacer con javascript del lado del cliente? ¿debe ser necesariamente del
> lado
> del servidor?

Lo puedes hacer en los dos lados. Desde Javascript, eso se llama DHTML. Y


lo
que hace la funcion de javascript es cambiar el texto de un objeto
invisible.

Por ejemplo, podrias tener algo asi, al lado de un campo texto:

<span id=Error1></span>

Al tener un ID, desde javascript puedes transformar ese fragmento de html


en
un objeto y cambiarle los valores.

Seria algo asi desde javascript (es de memoria, habria que refinarlo)

document.getElementbyID("Error1").innerHTML = "<font color=red face>Se
produjo un error</font>

> servidor porque los datos de la pagina B se recogen mediante un
> request.form, y si al menos uno de ellos no es correcto, se llama a la
> pagina A mediante un GET y una URL codificada que permitira a esta


pagina
> determinar con un request.querystring, que tipo de accion debe


emprender.
> en
> este caso la accion, es simplemente mostrar en formato HTML sea al
> principio
> de la pagina o al lado de cada control afectado por una entrada de datos
> erronea un mensaje de validacion.
> ¿es eso correcto?¿es una validacion de servidor?

Si, al tener que procesar los datos en el servidor, deberias escribir HTML
desde el servidor al lado de cada control o donde quieras.

Aunque, como te comentaba antes, el ir de una pagina a otra hara que


tengas
que trabajar mas con el manejo de los errores. Es mejor que toda esa


logica
la pongas en una unica pagina.

Saludos.

Matías Iacono
Microsoft MVP ASP/ASP.net - DCE3
"Enrique" escribió en el mensaje
news:%
> hola a todos,
>
> en mis recientes post, os he preguntado sobre la validacion y si he
> entendido bien: existe "validacion de cliente", normalmente en


Javascript
> que es una validacion rapida pero poco segura y la "validacion de
> servidor"
> en cualquier lenguaje de script que es una validacion segura pero mas
> lenta.
> por lo visto, se prefiere usar la "validacion de cliente" porque evita
> accesos inecesarios al servidor lo que puede ser molesto tanto para el
> usuario como para nuestro servidor que se carga inutilmente.
> pero por otro lado, he leido que la "validacion de cliente" no debe


evitar
> la "validacion de servidor" porque aunque se haga el submit del lado del
> cliente, cualquier usuario con algo de conocimients y mal intencionados
> puede crear un formulario con valores determinados que "ataque" a


nuestro
> servidor.
>
> ahi van las preguntas:
> ¿que se suele usar normalmente?¿validacion de cliente?¿de servidor?


¿ambos
> a
> la vez?¿ninguna?
> si ademas de la "validacion de cliente", usamos la "validacion de
> servidor",
> ¿se repite ciertas "validaciones de cliente" o son validaciones


distintas?
>
> imaginemos que tengo 2 textbox A y B. A debe tener datos, nada mas. B


debe
> tener una fecha. ¿me podrias dar un ejemplo generico (sin implementar


las
> funciones Javascript) que me muestre como se llama una funcion que se


usa
> con el "onSubmit" que supongo a su vez debe llamar a las 2 otras
> funciones?
>
> ...
>
> por otro lado, he visto funciones de validacion en javascript que usan
> mucho
> "alert" para mostrar un cuadro de dialogo con el mensaje de validacion
> adecuado.
> ¿como se hace para insertar HTML? ¿es igual que con VBScript? ¿distinto?
> si
> es asi, ¿como se hace?
> la idea es que cuando se validan los datos de un formulario, los


mensajes
> de
> validacion aparezcan masivamente en la pagina sea al principio de la
> pagina
> o al lado de cada campo afectado por una entrada erronea. ¿eso se puede
> hacer con javascript del lado del cliente? ¿debe ser necesariamente del
> lado
> del servidor?
>
> mi ultima pregunta se debe al sigueinte pensamiento:
> si la pagina A debe llamar a la pagina B, se debe validar primero por lo
> que
> se crea una pagina A' entre A y B que definira si los datos se han


entrado
> correctamente o no y si se debe volver a la pagina A para poner los


datos
> o
> ir a la B porque todo esta perfecto. eso considero que una validacion de
> servidor porque los datos de la pagina B se recogen mediante un
> request.form, y si al menos uno de ellos no es correcto, se llama a la
> pagina A mediante un GET y una URL codificada que permitira a esta


pagina
> determinar con un request.querystring, que tipo de accion debe


emprender.
> en
> este caso la accion, es simplemente mostrar en formato HTML sea al
> principio
> de la pagina o al lado de cada control afectado por una entrada de datos
> erronea un mensaje de validacion.
> ¿es eso correcto?¿es una validacion de servidor?
>
> muchas gracias por sus respuestas y valiosa ayuda
>
>
>
>



Respuesta Responder a este mensaje
#4 Enrique
11/10/2005 - 22:02 | Informe spam
aun asi tengo dudas, te hago las preguntas.

En realidad no, siempre es preferible la validacion por parte del


servidor.
Por lo general, cuando alguien va a validar algo, es porque concidera que
ese dato es critico, por ende, y como dices mas adelante, alguien con algo
de conocimientos podria hacer que todo vuele por los aires.



cuando validas algo, no necesariamente consideras que es un dato "critico" o
depende lo que entiendas por "critico". puedes perfectamente validar un
campo "nombre" donde lo unico que vas a validar es si hay algo o no. es
decir: verificar que hay datos en un campo "obligatorio". ¿de que lado
validas este campo?¿cliente? ¿servidor? ¿ambos? Otra cosa: eso de crear un
formulario que "ataque" al servidor es algo que tengo medianamente claro por
lo que ¿seria posible que me des un ejemplo simple que me permita entender
este concepto?

Ademas, si no lo validas en el servidor, puedes probocar una entrada
incorrecta, generando un error en la aplicacion.


si se ha validado por el cliente, no existe ninguna razon que no lo valide
el servidor, salvo que el usuario cambie los valores. ¿no es asi?

Normalmente se usa la validacion del lado del servidor. La del cliente, es
solo para darle "color" a tu aplicacion. Es para darle dinamismo, pero


esto
no te asegura que te salves de los problemas.


si la validacion cliente solo vale para dar "color" y "dinamismo" a la
aplicacion y debemos sea lo que sea usar una "validacion servidor". ¿no se
podria evitar la validacion cliente? es decir: si valido del lado servidor y
me vale, ¿porque debo validar del lado cliente? quiza vayas a pensar que te
hago una pregunta a partir de una respuesta que me acabas de dar, entonces,
¿me puedes explicar eso de "dinamismo" y "color"?

Cuando validas en el cliente, lo haces con un lenguaje, cuando lo haces en
el server lo haces en otro. Asi que posiblemente la sintaxis no sea la
misma, pero la logica puede que si. De cualquier manera, si haces


referencia
a la reutilidad del codigo, pues creo que no habia casi ninguna, en el


caso
de que uses distintos lenguajes.


el que tu me hables de reutilidad de codigo entre lenguajes distintos en
cliente y servidor, significa que supones que se van a desarrollar de cada
lado funciones equivalentes en esos distintos lenguajes, ¿es asi?
ademas, pienso que es perfectamente factible que un programador desarrolle
todo en JavaScript, tanto del lado cliente como servidor por lo que en este
caso la reutilidad seria total, ¿que crees?

Si lo haces en el cliente:

<script>
function Validar()
{
if .
{
//Si cumple
return true;
}
else
{
return false;
}
}
</script>

<form onSubmit="return Validar()">


aqui se llama a la funcion "validar". el submit por lo que veo solo permite
llamar a una funcion y no a varias sucesivas. en este caso, parece ser que
solo se trata de validar a un textbox, digamos el A, ¿que pasa con el 2º
textbox?
supongo y corrigeme si me confundo que la funcion "validar" debera llamar
cada funcion que valide cada campo (son validaciones distintas) para
devolver un resultado booleano global. si al menos 1 de los 2 textbox
devuelven el valor false, sera el valor devuelto en e submit por la funcion
de validacion global ¿es asi?

Si, al tener que procesar los datos en el servidor, deberias escribir HTML
desde el servidor al lado de cada control o donde quieras.
Aunque, como te comentaba antes, el ir de una pagina a otra hara que


tengas
que trabajar mas con el manejo de los errores. Es mejor que toda esa


logica
la pongas en una unica pagina.


eso si. ninguna pega con eso. es mejor que una pagina se llame a si misma
que llamar una pagina transparente, es decir sin codigo HTML y compuesta
unicamente de codigo ASP y VBScript.


de todas formas, te voy a hacer la pregunta directamente aplicada a mi
problema que seguramente encontraras muy simple: tengo un formulario de
registro de clientes que contiene 3 tipos de informacion: contacto, datos de
entrega, datos de facturacion. ¿como harias tu la validacion?

muchas gracias por tu ayuda
Respuesta Responder a este mensaje
#5 Matías Iacono
11/10/2005 - 23:09 | Informe spam
Bueno... vamos por partes :D

por lo visto, se prefiere usar la "validacion de cliente" porque evita
accesos inecesarios al servidor lo que puede ser molesto tanto para el
usuario como para nuestro servidor que se carga inutilmente.



En realidad no, siempre es preferible la validacion por parte del servidor.
Por lo general, cuando alguien va a validar algo, es porque concidera que
ese dato es critico, por ende, y como dices mas adelante, alguien con algo
de conocimientos podria hacer que todo vuele por los aires.

Ademas, si no lo validas en el servidor, puedes probocar una entrada
incorrecta, generando un error en la aplicacion.

¿que se suele usar normalmente?¿validacion de cliente?¿de servidor? ¿ambos
a
la vez?¿ninguna?
si ademas de la "validacion de cliente", usamos la "validacion de
servidor",
¿se repite ciertas "validaciones de cliente" o son validaciones distintas?



Normalmente se usa la validacion del lado del servidor. La del cliente, es
solo para darle "color" a tu aplicacion. Es para darle dinamismo, pero esto
no te asegura que te salves de los problemas.

Cuando validas en el cliente, lo haces con un lenguaje, cuando lo haces en
el server lo haces en otro. Asi que posiblemente la sintaxis no sea la
misma, pero la logica puede que si. De cualquier manera, si haces referencia
a la reutilidad del codigo, pues creo que no habia casi ninguna, en el caso
de que uses distintos lenguajes.

imaginemos que tengo 2 textbox A y B. A debe tener datos, nada mas. B debe
tener una fecha. ¿me podrias dar un ejemplo generico (sin implementar las
funciones Javascript) que me muestre como se llama una funcion que se usa
con el "onSubmit" que supongo a su vez debe llamar a las 2 otras
funciones?



Si lo haces en el cliente:

<script>
function Validar()
{
if .
{
//Si cumple
return true;
}
else
{
return false;
}
}
</script>

<form onSubmit="return Validar()">

Al colocar la llamada en el onsubmit, y retornar false o true, hace que el
submit se haga o no. De esta forma, si la condicion no se cumple, el
formulario no se aplica.

por otro lado, he visto funciones de validacion en javascript que usan
mucho
"alert" para mostrar un cuadro de dialogo con el mensaje de validacion
adecuado.
¿como se hace para insertar HTML? ¿es igual que con VBScript? ¿distinto?
si
es asi, ¿como se hace?
la idea es que cuando se validan los datos de un formulario, los mensajes
de
validacion aparezcan masivamente en la pagina sea al principio de la
pagina
o al lado de cada campo afectado por una entrada erronea. ¿eso se puede
hacer con javascript del lado del cliente? ¿debe ser necesariamente del
lado
del servidor?



Lo puedes hacer en los dos lados. Desde Javascript, eso se llama DHTML. Y lo
que hace la funcion de javascript es cambiar el texto de un objeto
invisible.

Por ejemplo, podrias tener algo asi, al lado de un campo texto:

<span id=Error1></span>

Al tener un ID, desde javascript puedes transformar ese fragmento de html en
un objeto y cambiarle los valores.

Seria algo asi desde javascript (es de memoria, habria que refinarlo)

document.getElementbyID("Error1").innerHTML = "<font color=red face>Se
produjo un error</font>

servidor porque los datos de la pagina B se recogen mediante un
request.form, y si al menos uno de ellos no es correcto, se llama a la
pagina A mediante un GET y una URL codificada que permitira a esta pagina
determinar con un request.querystring, que tipo de accion debe emprender.
en
este caso la accion, es simplemente mostrar en formato HTML sea al
principio
de la pagina o al lado de cada control afectado por una entrada de datos
erronea un mensaje de validacion.
¿es eso correcto?¿es una validacion de servidor?



Si, al tener que procesar los datos en el servidor, deberias escribir HTML
desde el servidor al lado de cada control o donde quieras.

Aunque, como te comentaba antes, el ir de una pagina a otra hara que tengas
que trabajar mas con el manejo de los errores. Es mejor que toda esa logica
la pongas en una unica pagina.

Saludos.

Matías Iacono
Microsoft MVP ASP/ASP.net - DCE3
"Enrique" escribió en el mensaje
news:%
hola a todos,

en mis recientes post, os he preguntado sobre la validacion y si he
entendido bien: existe "validacion de cliente", normalmente en Javascript
que es una validacion rapida pero poco segura y la "validacion de
servidor"
en cualquier lenguaje de script que es una validacion segura pero mas
lenta.
por lo visto, se prefiere usar la "validacion de cliente" porque evita
accesos inecesarios al servidor lo que puede ser molesto tanto para el
usuario como para nuestro servidor que se carga inutilmente.
pero por otro lado, he leido que la "validacion de cliente" no debe evitar
la "validacion de servidor" porque aunque se haga el submit del lado del
cliente, cualquier usuario con algo de conocimients y mal intencionados
puede crear un formulario con valores determinados que "ataque" a nuestro
servidor.

ahi van las preguntas:
¿que se suele usar normalmente?¿validacion de cliente?¿de servidor? ¿ambos
a
la vez?¿ninguna?
si ademas de la "validacion de cliente", usamos la "validacion de
servidor",
¿se repite ciertas "validaciones de cliente" o son validaciones distintas?

imaginemos que tengo 2 textbox A y B. A debe tener datos, nada mas. B debe
tener una fecha. ¿me podrias dar un ejemplo generico (sin implementar las
funciones Javascript) que me muestre como se llama una funcion que se usa
con el "onSubmit" que supongo a su vez debe llamar a las 2 otras
funciones?

...

por otro lado, he visto funciones de validacion en javascript que usan
mucho
"alert" para mostrar un cuadro de dialogo con el mensaje de validacion
adecuado.
¿como se hace para insertar HTML? ¿es igual que con VBScript? ¿distinto?
si
es asi, ¿como se hace?
la idea es que cuando se validan los datos de un formulario, los mensajes
de
validacion aparezcan masivamente en la pagina sea al principio de la
pagina
o al lado de cada campo afectado por una entrada erronea. ¿eso se puede
hacer con javascript del lado del cliente? ¿debe ser necesariamente del
lado
del servidor?

mi ultima pregunta se debe al sigueinte pensamiento:
si la pagina A debe llamar a la pagina B, se debe validar primero por lo
que
se crea una pagina A' entre A y B que definira si los datos se han entrado
correctamente o no y si se debe volver a la pagina A para poner los datos
o
ir a la B porque todo esta perfecto. eso considero que una validacion de
servidor porque los datos de la pagina B se recogen mediante un
request.form, y si al menos uno de ellos no es correcto, se llama a la
pagina A mediante un GET y una URL codificada que permitira a esta pagina
determinar con un request.querystring, que tipo de accion debe emprender.
en
este caso la accion, es simplemente mostrar en formato HTML sea al
principio
de la pagina o al lado de cada control afectado por una entrada de datos
erronea un mensaje de validacion.
¿es eso correcto?¿es una validacion de servidor?

muchas gracias por sus respuestas y valiosa ayuda




Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida