Безопасно ли отправлять данные кредитной карты по электронной почте из сценария PHP? - PullRequest
0 голосов
/ 21 марта 2011

Я создаю приложение, которое принимает заказы по кредитным картам, но не осуществляет программную авторизацию платежей.Вместо этого администратор ДОЛЖЕН просмотреть каждый заказ и вручную ввести их информацию в платежный шлюз, чтобы завершить платеж (их решение, а не мое).Мне интересно, как лучше всего хранить (даже если это временно) их информацию и передавать ее администратору.

Можно ли отправлять по электронной почте такую ​​информацию в незашифрованном виде?Если я зашифрую информацию, как лучше всего передать ее через админ-панель без риска?

И, пожалуйста, не говорите мне Google "Соответствие PCI".

Ответы [ 3 ]

5 голосов
/ 21 марта 2011

NO

Что, если на принимающем компьютере есть вирусы?Что, если поблизости есть анализатор пакетов (маловероятно, но все же ...).Почему вы хотите отправить такую ​​изменчивую информацию по электронной почте в любом случае?Разве владелец карточки не узнает номера на своей карточке?Я полагаю, если вы хотите сказать «у вас есть [эта] карта», отправьте только последние четыре цифры номера, например «Visa Debit, оканчивающийся на 1234» или «Solo, истекающий 7/15».

3 голосов
/ 21 марта 2011

Коротко: хороших путей нет.Давайте проясним:

НЕТ.ХОРОШО.СПОСОБЫ.НИКТО.НУЛЬ.NADA.КОГДА-ЛИБО.

Длинно: между потенциальным хакером и этими данными можно размещать как можно больше препятствий.

  • Любые страницы, на которых вводится или отображается информация о кредитной карте, должны использовать HTTPS .Это реальный минимум, иначе любой пользователь с сетевым анализатором получит эти учетные данные.
  • Сохраните эти учетные данные в своей БД в зашифрованном виде, используя сильный алгоритм : RSA, Blowfish.
  • Храните ключ шифрования в «безопасном» месте. Это самое слабое место : вашему сценарию он нужен для расшифровки информации, когда вы отображаете ее на панели администратора.Поэтому поместите его в файл с минимальным правом доступа (например, восьмеричные права linux установлены на 400, с правами на specialuser: specialgroup).
  • Не давайте пароль этому пользователю иroot, установите логин SSH только с ключом SSH.
  • Будьте параноиком: меняйте пароль пользователя каждый день, расшифровывайте данные и меняйте ключ каждый день или меньше.

Изменить:

На самом деле самым слабым местом будет компьютер пользователя.Но когда ему будет предъявлено обвинение в 10 000 долларов на кокаин и калашников, он скажет:

Я уверен, что этот сайт, где я дал свои учетные данные, был взломан.Я никогда не буду покупать их снова

0 голосов
/ 21 марта 2011

Нет - это не безопасно.

Даже если вы зашифруете письма, я бы ничего не купил у вас. Но с другой стороны, у меня не намного больше шансов купить вещи у вас, даже если вы отправляете данные только через HTTPS - я даю свой номер копии только тем компаниям, которым могу доверять (Google, Worldpay, Paypal, Sagepay, Netbanx .. .)

...