Учетные данные Paypal API, проблема безопасности

4

Я разрабатываю плагин WP, который позволит осуществлять платежи Paypal и выставление счетов. Этот плагин позволит пользователям использовать свои собственные учетные записи Paypal при принятии платежей.

Насколько я понимаю, мне нужно использовать REST для включения API-фактуры. Поэтому он оставляет мне два варианта:

  • Пусть пользователи создают собственное приложение и вводят идентификатор клиента и секретный ключ в настройки плагина.
  • Используйте мое собственное приложение, которое я создал (только для этой цели), и вместо него отправляюсь с сторонним платежом: http://paypal.github.io/PayPal-PHP-SDK/sample/doc/payments/CreateThirdPartyPayment.html

Моя забота о первом заключается в том, что, сохраняя ключи в базе данных, и их сайт каким-то образом скомпрометирован - хакеры могут выполнять API от имени своего приложения.

Второй покажет секретные ключи самого файла плагина, но опять же, поскольку приложение будет использоваться только для этой цели, а Payee/Merchant будет указано только в настройках плагина, я думаю, это нормально? Другим преимуществом может быть то, что пользователю не нужно создавать собственное приложение.

Какой из них лучше двух, или вы можете порекомендовать третий вариант?

Спасибо!

Теги:
paypal
paypal-rest-sdk

2 ответа

0

Храните ключи API в своей базе данных, но соедините их и хэш их, потому что они пароли. Поскольку вы используете стороннюю CMS, вы должны предположить, что рано или поздно она будет иметь эксплойт с нулевым днем ​​и, рано или поздно, у вас будет хакер с правами root для вашего администратора CMS. Создайте свою базу данных и плагины с учетом этого факта.

0

Ну, вы всегда можете создавать динамические кнопки оплаты (аналогично тому, что делает мастер в PayPal) на основе параметров, которые пользователь вводит в ваш плагин, и использовать конечную точку экспресс-проверки. Но вы потеряете некоторые функции (например, полную настройку процесса оформления заказа)

  • 1
    Спасибо, но мне нужно было выставлять счета, и этого можно было достичь только с помощью REST API. Я выбрал вариант 2 вместо этого.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню