C # очистка конфиденциальных данных после передачи их на платежные шлюзы.

J. Moore спросил: 14 ноября 2017 в 05:49 в: c#

Я пытаюсь найти решение для очистки конфиденциальных данных кредитной карты из памяти после их передачи на платежный шлюз. Кажется, что большинство платежных шлюзов ожидают, что номер простого текста в виде строки в API. Если я использую строку в C #, я не могу очистить память, поскольку у меня нет никакого контроля над тем, когда память собирается мусором. Приведенный ниже фрагмент dto из SDK для Cybersource иллюстрирует мою проблему. Примечание. Я пытаюсь выполнить требование 5.1.6.1 PA-DSS версии 3.2. Методы кодирования включают документацию о том, как PAN и / или SAD обрабатываются в памяти. Наш аудитор указывает, что номера счетов в виде простого текста не могут быть сохранены в строковой переменной C #.

У нас есть интеграции с другими шлюзами, которые также имеют эту PAN в строковой переменной. Как другие решают эту проблему?

namespace CyberSource.Clients.SoapServiceReference
{
    //
    [DebuggerStepThrough]
    [DesignerCategory("code")]
    [GeneratedCode("System.Xml", "4.0.30319.34234")]
    [XmlType(Namespace = "urn:schemas-cybersource-com:transaction-data-1.109")]
    public class Card : INotifyPropertyChanged
    {
        public Card();        [XmlElement(Order = 6)]
        public string cardType { get; set; }
        //
        [XmlElement(Order = 5)]
        public string cvNumber { get; set; }
        //
        [XmlElement(Order = 4)]
        public string cvIndicator { get; set; }
        //
        [XmlElement(DataType = "integer", Order = 3)]
        public string expirationYear { get; set; }
        //
        [XmlElement(DataType = "integer", Order = 2)]
        public string expirationMonth { get; set; }
        //
        [XmlElement(Order = 1)]
        public string accountNumber { get; set; }
        //
        [XmlElement(Order = 0)]
        public string fullName { get; set; }

0 ответов