ASP.NET - Evitar acceso a campos ocultos asp.net

 
Vista:
Imágen de perfil de Damian
Val: 7
Ha aumentado su posición en 2 puestos en ASP.NET (en relación al último mes)
Gráfica de ASP.NET

Evitar acceso a campos ocultos asp.net

Publicado por Damian (4 intervenciones) el 03/10/2018 06:28:30
Como están

Estoy haciendo una tienda online en ASP.NET protegida por SSL donde el usuario podrá pagar sus compras con tarjeta de crédito, para esto se recaban los datos de la tarjeta, y se realiza un postback al banco para cargar el pago, el banco solicita que se envíen mediante un form un listado de variables para atender la solicitud, mi pregunta es la siguiente:

¿como puedo hacer para que los clientes no puedan visualizar los campos ocultos en el formulario?

Ya que viendo el código fuente en el explorador se pueden visualizar los campos ocultos, en ellos se incluyen datos confidenciales y de configuración de la tienda, que nadie debería de saber. O mejor aun se puede realizar el postback de lado del servidor, y que los clientes no vean nada?

Tengo entendido que puedo usar javascript para evitar el acceso al codigo html, pero esto no resuelve al 100% el problema ya que se puede desactivar

Les agradecería mucho su ayuda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Wilfredo Patricio Castillo
Val: 169
Oro
Ha mantenido su posición en ASP.NET (en relación al último mes)
Gráfica de ASP.NET

Evitar acceso a campos ocultos asp.net

Publicado por Wilfredo Patricio Castillo (75 intervenciones) el 03/10/2018 19:31:19
Debes cifrar los datos en el cliente antes de enviarlo al servidor, con eso evitas que esté visible.

Saludos cordiales,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Evitar acceso a campos ocultos asp.net

Publicado por miguelz (2 intervenciones) el 05/10/2018 23:12:58
Si ,que pesimo nombre eso de campos ocultos,
en fin,
los datos del cliente de tarjeta el cliente los conoce,
ahora al enviarlos al servidor si tu conexion es SSL los datos de comunicacion
ya estan cifrados, solo asegurate que esos datos no se queden en la memoria .

----- los controles en cliente puede ser
autocomplete="off"


1
2
3
4
<label for="foo">Nombre en tarjeta</label>
<input type="text" id="NombreCC" name="NombreCC">
<label for="bar">Numero Tarjeta</label>
<input type="text" id="NumeroCC" name="NumberoCC">

Los datos de configuracion de tu tienda no debes ponerlo nunca en el lado del cliente,

estos deben permanecer del lado del servidor y algunas veces esos datos se cifran, la operacion pago de transaccion es del lado del Servidor y el resultado lo pones del lado del cliente.

Nunca guardes datos de tarjetas en tu base de datos, solo guarda un identificador de transaccion y el resultado, el banco te proporciana el identificador y el estatus de transaccion.


Saludos y suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 29
Ha aumentado su posición en 2 puestos en ASP.NET (en relación al último mes)
Gráfica de ASP.NET

Evitar acceso a campos ocultos asp.net

Publicado por Ismael (14 intervenciones) el 09/10/2018 22:24:19
Como dice el compañero,
los datos correspondientes a la tienda nunca puedes ponerlo en el cliente, si el post que haces va directamente al banco, no está bien, no es una buena implementación de la lógica.

Tienes que hacer que el post vaya a tu controlador, en el caso de MVC o al behind, una vez en el servidor, ya realizas la transacción con el banco de la forma que tengas estipuladas y pasándole los datos correpondientes al cliente mas los tuyos de la tienda, que éstos los recuperarás de BBDD o del config, etc. En éste punto el cliente no va a poder ver los datos que le mandas al banco.

Un Saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Wilfredo Patricio Castillo
Val: 169
Oro
Ha mantenido su posición en ASP.NET (en relación al último mes)
Gráfica de ASP.NET

Evitar acceso a campos ocultos asp.net

Publicado por Wilfredo Patricio Castillo (75 intervenciones) el 10/10/2018 00:43:47
Estimado Ismael, y cómo pones los datos directamente en el servidor o en el controlador sin ponerlo en el cliente?.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 29
Ha aumentado su posición en 2 puestos en ASP.NET (en relación al último mes)
Gráfica de ASP.NET

Evitar acceso a campos ocultos asp.net

Publicado por Ismael (14 intervenciones) el 13/10/2018 10:56:46
La solución que has comentado es una alternativa, la de cifrar los datos de la tienda y enviar el post, pero si el post se hace directamente al banco con los datos cifrados, me imagino y entiendo que el banco será capaz de descifrar esos campos ocultos de la tienda que tu has crifrado.
De todas formas, no creo que sea una buena praxis.
Lo mas acorde, es como he comentado antes, el post que hace el cliente con sus datos personales y bancarios viajan a tu controlador, y los datos de la tienda que enviarás al banco para acreditarte, los puedes recuperar de tu BBDD o de tu config, etc...
Una vez tengas tu estructura de datos a enviar al banco, con los datos de la tarjeta + tus datos de la tienda, empiezas a realizar la transacción por alguna API, Rest, etc..
Es una de las formas mas comunes y seguras de trabajar con terceros.

Un Saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Wilfredo Patricio Castillo
Val: 169
Oro
Ha mantenido su posición en ASP.NET (en relación al último mes)
Gráfica de ASP.NET

Evitar acceso a campos ocultos asp.net

Publicado por Wilfredo Patricio Castillo (75 intervenciones) el 13/10/2018 19:35:46
Pero al enviar los datos desde el cliente al controlador, también están expuestos, o no?, ya que tienen que viajar desde el cliente al controlador, allí el tema de cifrar los datos, ya que así vaya por https, son interceptables o no?.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 29
Ha aumentado su posición en 2 puestos en ASP.NET (en relación al último mes)
Gráfica de ASP.NET

Evitar acceso a campos ocultos asp.net

Publicado por Ismael (14 intervenciones) el 18/10/2018 21:55:23
Hola,

En éste caso, lo que está comentando Damian, es que no quiere que el cliente vea los datos ocultos de los input hidden, que el ha puesto con los datos de configuración de la tienda, por supuesto que todo lo que quieras hacer por un post en el cliente es visible por el cliente. De ahí el intentar quitar en la parte del cliente parte de la configuración interna de tu servidor, tienda, etc..., que en el cliente solo hayan datos del cliente, como su tarjeta, nombre, fecha caducidad, da igual si el cliente los puede ver en los input hidden o input text, los ha rellenado él.

Que yo sepa, no tiene nada que ver con lo que estás indicando Wilfredo, ya que tú estás suponiendo que hay alguien interceptando ese post que va al banco por Https (que ya va cifrado), con una técnica de "Man in the Middle".

Por eso, comentaba de hacer un post del cliente en el controlador por https si quieres para mayor seguridad y de que el controlador, o la lógica de negocio ya recuperara los datos de la tienda, que ahí el cliente no lo va a ver, y hacer posteriormente una conexión con el banco con todos los datos necesarios, normalmente a parte de una conexión segura https que te requerirá si es un banco, como seguridad, en algunos sitios, cuando se suelen hacer operaciones de compra, transacciones, etc.., hay un "callback", que realiza la entidad tercera contra tu sitio, para validar y certificar la transacción de que realmente proviene de tu sitio.

Espero que se aclare un poco todo.

Un Saludo,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar