использование PayPals HTML API является безопасным? - PullRequest
1 голос
/ 01 апреля 2010

я пробую PayPals HTML API, где вы указываете цену, item_name, информацию о клиенте и так далее в HTML:

    <form action="https://www.paypal.com/cgi-bin/webscr" method="post" id="payPalForm">

        <input type="hidden" name="cmd" value="_cart" />
        <input type="hidden" name="upload" value="1" />

        <input type="hidden" name="no_note" value="1" />
        <input type="hidden" name="business" value="your@paypalaccount.com" />
        <input type="hidden" name="currency_code" value="SEK" />
        <input type="hidden" name="return" value="http://freelanceswitch.com/payment-complete/" />

        <input type="hidden" name="tax_rate" value="25" />

        <input type="hidden" name="item_name_1" value="Apple Macpro" />
        <input type="hidden" name="item_number_1" value="01 - Product 1" />
        <input type="hidden" name="amount_1" value="25000" />

        <input type="hidden" name="item_name_2" value="Apple Macbook" />
        <input type="hidden" name="item_number_2" value="02 - Product 2" />
        <input type="hidden" name="amount_2" value="12500" />

        <input type="hidden" name="item_name_3" value="Apple Macbook Air" />
        <input type="hidden" name="item_number_3" value="03 - Product 3" />
        <input type="hidden" name="amount_3" value="12500" />

        <input type="submit" name="Submit" value="Submit" />

    </form>

когда пользователь нажимает кнопку "Отправить", он переходит на страницу оплаты PayPals.

но не означает ли это, что хакер может изменить порядок, манипулируя HTML-кодом?

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

Ответы [ 3 ]

1 голос
/ 01 апреля 2010

Конечно, похоже, что кто-то может просто изменить HTML и повторно отправить форму.

Я не уверен насчет PayPal, но Google Checkout обрабатывает это, вместо настройки HTML, он заставляет вас создавать XML, шифровать его с помощью вашего торгового ключа и использовать зашифрованную строку в HTML для передачи в Google. Затем Google расшифровывает его, используя ваш торговый ключ, и вуаля - без изменений.

Посмотрите в документации PayPal что-то вроде "подписания корзины" или "запроса шифрования". Они также могут сделать обратный вызов на ваш сервер, сообщив вам, что было отправлено, и вы можете сравнить его с вашей базой данных, чтобы убедиться, что цены все еще верны.

1 голос
/ 01 апреля 2010

Не похоже, что это само по себе безопасно. На странице PayPal Защита вашего веб-сайта стандартными кнопками они рассказывают о возможности создания защищенных кнопок платежей. Однако в дальнейшем они указывают, что это не работает, если Javascript отключен, что делает защиту бесполезной! Затем они рассказывают о других ручных процессах, которые могут быть выполнены, включая сверку и мгновенные уведомления, которые в любом случае должны происходить в любом правильном процессе учета.

Зашифрованные платежи через веб-сайт действительно кажется мне единственным безопасным вариантом.

1 голос
/ 01 апреля 2010

Если это похоже на другие html-интеграции, должен быть обратный вызов напрямую из Paypal на ваш сервер со всеми полями, которые были введены. Вы можете сравнить их, чтобы увидеть, изменились ли они. Обычно существуют различные механизмы безопасности, такие как общий скрытый ключ, чтобы вы могли проверить подлинность обратного вызова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...