Pregunta

Por eso estoy implementando un sistema de pago con 2co en mi sitio web.Estoy usando su 'Redireccionamiento de encabezado' que devuelve al cliente a una página ASPX en mi sitio web con un montón de cadenas de consulta después de un pago exitoso.

De todos modos, me preguntaba.¿Cuál es la forma correcta de asegurar esto?¿Qué pasaría si un cliente escribiera los parámetros él mismo, como `Payment.aspx?params-here' y agregara los créditos que deseara a su cuenta?

¿Cómo puedo asegurarme de que esto sea 100% auténtico?

¿Sugerencias?¡Gracias!

¿Fue útil?

Solución

Un enfoque de solución a manipulación de parámetros Por lo general, se asignan los parámetros de consulta a algo que no se puede manipular fácilmente, p.utilizando una función hash unidireccional para crear un resumen y enviarlo junto con el parámetro original y limitando la duración durante la cual un mapeo/resumen en particular es válido.Si el resumen coincide con el parámetro de consulta, sabrá que la solicitud no ha sido manipulada.

P.ej.tu URL

Payment.aspx?Amount=100

podría convertirse

Payment.aspx?Amount=100&Digest=53e5e07397f7f01c2b276af813901c2

Aquí hay un artículo antiguo pero aún relevante y detallado sobre el tema: Pasar parámetros de cadena de consulta a prueba de manipulaciones

En ASP.NET puedes usar Page.EnableEventValidation que utiliza un cuadro de texto oculto como parte de un formulario para validar que se emitió una solicitud desde el formulario:

Cuando la propiedad EnableEventValidation se establece en True, ASP.NET valida que un evento de control se originó en la interfaz de usuario que fue prestado por ese control.Un control registra sus eventos durante la representación y luego valida los eventos durante el manejo de devolución de devolución o devolución de llamada.Por ejemplo, si un control de lista incluye opciones numeradas 1, 2 o 3 cuando se representa la página, y si se recibe una solicitud de devolución de retroceso, especificando el número 4, ASP.NET plantea una excepción.Todos los controles basados ​​en eventos en ASP.NET usan esta función de forma predeterminada.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top