Маска номера кредитных карт в SQL Server - PullRequest
0 голосов
/ 06 сентября 2011

В моей базе данных есть столбец, в котором хранится номер кредитной карты.После примерно двух недель хранения в базе данных я хочу иметь возможность выполнить запрос, чтобы обновить все записи кредитной карты и замаскировать их, отображая только последние четыре цифры.До сих пор мне не удавалось найти способ сделать это - что, если номера кредитных карт различаются по длине?Было бы лучше, если бы я мог замаскировать первые 12 цифр, если они не начинаются с 3, а затем замаскировать только первые 11.

Ответы [ 2 ]

7 голосов
/ 06 сентября 2011

Вы должны изменить свою обработку данных платежной (кредитной) карты и немедленно. В противном случае ваша компания может потерять способность обрабатывать платежные карты, и тогда вас, вероятно, уволят. И если эти простые текстовые числа будут скомпрометированы неавторизованным источником ...

Во-первых, вам нужно зашифровать имена, номера и даты истечения срока действия вашей платежной карты. Затем вы захотите сделать резервную копию базы данных, поместить ее на магнитную ленту и перенести в стороннее хранилище. Затем выполните очистку всех существующих резервных копий базы данных, поскольку они содержат номера кредитных карт в виде простого текста - большое отрицательное значение в соответствии с Payment Card Industry .

Самое безопасное, что нужно сделать, это сохранить четыре самые правые цифры в другом зашифрованном столбце в вашей таблице. Затем вам нужно только выбрать это поле и расшифровать его на стороне клиента (помните, что вы должны убедиться, что номера платежных карт зашифрованы при передаче «по проводам» [a.k.a. ваша локальная или глобальная сеть или интернет-соединение]). Отобразите номер как «Счет заканчивается на ####» или что-то подобное.

5 голосов
/ 06 сентября 2011

Простой ответ:

UPDATE dbo.MyLittleSecurityBreach 
    SET CreditCardNumber = RIGHT(CreditCardNumber, 4);

Не беспокойтесь о сохранении символов маски * в базе данных, что в этом хорошего?Если у вас есть тип, вы знаете, что Amex - это 15 символов, а все остальные - 16. Добавьте 11 или 12 символов маски во время презентации.

Тем не менее, если вы не слушаете советЧтобы зашифровать эти данные, я настоятельно рекомендую вам сообщить своему работодателю, что вам нужен кто-то, кто поможет с безопасностью данных.Это катастрофа в ожидании.

...