Soy bastante nuevo en JS y actualmente estoy realizando un sencillo sistema de pago por pasos utilizando puramente JS y algunos Ajax y PHP. Me he estado preguntando acerca de los posibles problemas de seguridad que podrían plantearse con este sistema.
La forma en que funciona es la siguiente:
- Seleccione un elemento, presione Siguiente (Ocultar div. actual, mostrar siguiente div)
- Use el incremento / decremento y elija la cantidad para el artículo, presione Siguiente (Ocultar div. actual, mostrar el siguiente div)
- Igual que 2 solo con otro elemento
- Igual que 2 y 3 con otro elemento
- Generar factura
- Continúe con el pago (complete los detalles de la tarjeta y pague usando la API externa de la tarjeta de crédito)
Ahora, lo que me molesta es el número 6. ¿Qué es alguien que edita el JS y envía valores diferentes al procesador de pagos externo? ¿Es eso posible? Y si es así, ¿cómo puedo asegurarme de que esto no suceda?
Con mi Javascript, uso varios valores que obtengo de una tabla simple de mi base de datos, como el precio de los artículos y el costo de envío. Pero uso estos valores directamente en mi archivo Javacsript para los cálculos y la generación de la factura. Tengo la sensación de que estoy abordando el problema de una manera incorrecta. ¿Existe la posibilidad de que el "cliente" también pueda cambiar los cálculos?
¿Cómo me aseguro de que una vez que se genere la factura, se utilicen los valores correctos para calcular el precio total, de modo que se envíe el precio adecuado a través de la pasarela de pago, sin importar si alguien simplemente confunde con el "front-end"? ¿Números que aparecen?
Nota Me han dicho que este sería el mejor lugar para publicar esta pregunta; por favor, avíseme si no es así y la eliminaré.
Si desea ver el proceso de pago que realicé, aquí está (aún no he puesto la API de la pasarela de pago porque me preocupa la seguridad): enlace
Gracias :-)