Como ha dicho otro usuario, según las reglas de cumplimiento de PCI, esto es perfectamente aceptable.
Quería aclarar un poco exactamente por qué las cosas son así. En primer lugar, los primeros seis dígitos del número de la tarjeta constituyen el BIN, un número que se considera "conocido". Este es un número asignado a la institución que emitió su tarjeta, y todos los demás titulares de tarjetas que son miembros de esa institución comparten el BIN. De modo que mostrar el BIN no le da a un atacante ninguna información que no pueda obtener simplemente mirando la lista de BIN. Dado que ocultar el BIN proporciona solo una cantidad de seguridad marginal (algunos dirían "trivial"), ¿por qué enmascararlo? El BIN de texto claro se usa habitualmente en el procesamiento de pagos, y enmascararlo crearía muchos más dolores de cabeza para un aumento casi cero de la seguridad.
Por lo general, mostrar los últimos cuatro es el mejor compromiso entre mostrar demasiada información y no suficiente para identificar de manera única la tarjeta cuando se usa para la reconciliación, etc. Si trabaja mucho con números de tarjetas de crédito, ocasionalmente se encuentra con dos enmascarados idénticos Números de tarjeta, pero con una probabilidad de 1 / 10,000 sí sucede.
Estas dos cosas tomadas en conjunto, probablemente volverá al punto "le está dando a un ladrón de datos diez de los números, lo que reduce su espacio de búsqueda a 1 millón, y la suma de comprobación, que lo reduce a 100,000! "
Tienes un punto válido, pero ¿qué significa eso? Significa que el ladrón ahora tiene una lista de 99,999 números de tarjetas de crédito incorrectas y 1 buena, sin ninguna forma de saber cuál es la correcta. El número de la tarjeta de crédito no contiene de manera inherente ninguna información que le permita saber cuándo tiene el número "correcto". No es como resolver un rompecabezas criptográfico; debe presentar la tarjeta para un pago para saber si es "buena" o no. Eso significa que, para descifrar incluso UNA tarjeta, debe comprometer la plataforma de pago de un comerciante y ejecutar un promedio de 50,000 transacciones para encontrarla. Teniendo en cuenta que a los comerciantes se les cobra por transacción, les interesa enormemente asegurarse de que alguien no pueda hacer este tipo de cosas. E incluso si el comerciante era un experto en proteger las credenciales de su cuenta de comerciante, los procesadores de pagos a menudo detectan este tipo de cosas y cierran la cuenta en cuestión de segundos.