Не проверять переменные POST перед отправкой в ​​PayPal - когда проверять? - PullRequest
0 голосов
/ 14 января 2011

У нас есть система PHP, в которой мы используем «Класс интеграции PHP Paypal IPN» Майки Каррика (http://www.micahcarrick.com/php-paypal-ipn-integration-class.html).

). В своем примере кода он рекомендует проверять переменные POST перед передачей их в PayPal

switch ($_GET['action']) {

   case 'process':      // Process and order...

... 
      // This is where you would have your form validation  and all that jazz.
      // You would take your POST vars and load them into the class like below,
      // only using the POST values instead of constant string expressions.
      // For example, after ensureing all the POST variables from your custom
      // order form are valid, you might have:
      //
      // $p->add_field('first_name', $_POST['first_name']);
      // $p->add_field('last_name', $_POST['last_name']);

... 
    $custom=$_SESSION['sess_user_id']."~".$_POST['promo_code'];
    $p->add_field('user_id', $_SESSION['sess_user_id']);
    $p->add_field('custom', $custom);
    $p->add_field('amount', $_POST['amount']);
...
    $p->submit_paypal_post(); // submit the fields to paypal
      break;

Однако мы не делаем этого для переменных, упомянутых выше.

Должны ли мы проверять (а) на этом этапе или на этапе, что PayPal (b) возвращает данные, или оба?

Как мы должны проверять данные?

Ответы [ 3 ]

1 голос
/ 14 января 2011

Я предполагаю, что в обоих случаях.

Проверка перед отправкой данных является обязательной.

При ответе я думаю, что это хорошая вещь.

1 голос
/ 14 января 2011

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

Проверка перед проверкой гарантирует, что пользователь выплачивает правильную сумму, что он отправляется на правильный счет PayPal, и у вас есть идентификатор для перехода (в «пользовательской» переменной), чтобы позволить вам вступить в брак с правильный пользователь / покупка, когда она подтверждена PayPal.

Проверка После проверки того, что снова была выплачена правильная сумма, идентификатор транзакции присутствует, действителен и корректен, а пользователь / покупка обновлены, чтобы отразить результат перевода.

1 голос
/ 14 января 2011

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

...