Tengo una aplicación WPF a la que hemos integrado el procesamiento de tarjetas de crédito. Actualmente, la información de crédito se ha modificado mediante swip/typing en una página web en un navegador web de WPF para satisfacer el cumplimiento de PCI. Aparentemente, esto está bien porque el componente del navegador web cumple con PCI y nuestro código nunca trata con la información de la tarjeta de crédito.¿Qué se necesita para escribir un ensamblaje compatible con PCI?
Odio mucho este diseño y me encantaría escribir un control/ensamblaje autónomo compatible con PCI WPF que podamos enchufar en lugar del componente del navegador web. Si el código de nuestra aplicación puede usar el navegador sin que esté certificado por PCI, entonces podría usar nuestro propio ensamble certificado PCI sin tener la certificación PCI, ¿verdad? Todo el nuevo control/ensamblaje que haría sería recopilar la información de la tarjeta y enviarla de forma segura a un servidor seguro remoto a través de un servicio WCF. No sería almacenar la tarjeta de crédito ni procesarla localmente. Me han dicho que hacer esto requiere un proceso de revisión de 9 meses, por lo que optamos por el navegador.
¿Alguien me puede dar una idea general de lo que implicaría hacer esto?
- ¿Se puede escribir en C#/WPF?
- ¿El código debe tener medidas de seguridad especiales implementadas (como CAS)?
- ¿El ensamblaje debe ofuscarse?
- Y una vez que está escrito, ¿qué tienes que hacer?
Hay múltiples niveles de cumplimiento PCI, tan pronto como toque los datos CC que aumentan el nivel. No hay una forma real de evitar esto si inserta la captura de información CC en su aplicación. La razón por la que funcionaría un control de navegador web es porque la información de CC nunca está en la memoria de su aplicación, sino que se envía directamente a un tercero. Todo este cumplimiento de PCI es un dolor en el trasero, pero en general estoy feliz de que mis datos, al menos, tengan la apariencia de ser seguros. – Travis