El dilema: ¿Puedes pagar un euro con tarjeta en las máquinas del Metro de Madrid?

[caption id="attachment_3804" align="alignleft" width="132" caption="Cartel indicativo para el pago con tarjeta"][/caption]

En este blog se habla a diario de fallos de seguridad en servidores, ordenadores de sobremesa, sistemas operativos... Hoy comentaremos un fallo de programación que afecta a los terminales de venta de billetes del Metro de Madrid. Quizás muchos estáis pensando en sacar billetes gratis o cualquier otro tema relacionado con el fraude, pero no se trata de eso.

Como ya habréis visto los que residís en la capital española, al comprar billetes de metro podemos pagar en efectivo o bien con tarjeta, siempre que superemos una compra mínima de 5€.

El programa que lleva instalado dichos terminales, suponemos que tiene una variable a la que se le aplica un valor positivo en caso de superar los 5€ y activa la posibilidad de pagar con VISA.

Aprovechando mi viaje por Madrid quise verificar la calidad de la programación de dichos terminales, ya que están programados por una gran empresa multinacional bastante bien valorada en el sector de la informática.

En términos de programación sería algo parecido a:

if( precio>=5) {visa=yes} else {visa=no}

Como podéis ver en las dos siguientes imágenes intentando comprar un billete sencillo de metro no podemos pagarlo con tarjeta tal puesto que tanto en la pantalla como en el lector de tarjetas está desactivada dicha opción.

 

Pantalla 1 Euro sin Tarjeta
Tarjeta deshabilitada

Hasta aquí todo parece estar bien, y lo estaría si no fuera porque una vez asignado el valor ·yes· a la variable visa  no vuelve a su valor negativo en el caso de que el precio sea inferior a 5€.

 

5 Euros en billetes de metro
[caption id="" align="aligncenter" width="478" caption="Habilitado los billetes"][/caption]

Podemos apreciar que, al subir la cantidad de billetes a 5 y por tanto el precio total de la compra a 5€ la aplicación ya nos deja pagar con tarjeta y lo mejor de todo, al volver a reducir la cantidad de la compra no se vuelve a comprobar el mínimo establecido para pagar con tarjeta y por tanto pagar un simple billete con Visa.

[caption id="" align="aligncenter" width="442" caption="Habilitado tarjetas para 1 Euro"][/caption]

Es todo una curiosidad... Así de sencillo! Como ya os habréis dado cuenta, esto es un fallo de programación en el cual no se comprueba la variable como debería hacerse. Que os parece? Sabríais arreglarlo?