/ / Você pode autenticar com segurança uma solicitação via IP? - php, segurança, gateway de pagamento

Você pode autenticar com segurança uma solicitação via IP? - php, segurança, gateway de pagamento

Atualmente estou integrando o NAB Transactgateway de pagamento em uma loja de comércio eletrônico. Depois que o pagamento é processado, o sistema NAB Transact envia uma solicitação POST ao nosso terminal para processarmos o resultado.

O problema é que a solicitação POST não contémhash / token seguro que podemos usar para postar de volta no sistema NAB Transact para autenticar que a solicitação é real e não falsificada. Pior ainda, o sistema NAB Transact não tem sequer uma API para qualquer autenticação de qualquer informação, essencialmente, muito pouca segurança!

Existe uma maneira de autenticar com segurança essessolicitações de? Por exemplo, verificar se as solicitações vêm de uma lista de endereços IP conhecidos em que o sistema de transações do NAB opera? Ou inverta a pesquisa de um IP? Quais opções existem e como você implementaria isso em PHP?

Não está confiando na autenticação IP que não é segura, pois pode ser falsificada?

Respostas:

0 para resposta № 1

O problema é que a solicitação POST não contém hash / token seguro que podemos usar para postar de volta ao sistema NAB Transact para autenticar que o pedido é real e não falsificado

Sim - isso é um problema bem :)

Não está confiando na autenticação IP não tão segura, pois pode ser falsificado?

Não é de todo seguro!


1 para resposta № 2

A autenticação baseada em endereços IP é adequada se você:

  • conhecer a lista de IPs (ou seja, os usados ​​pelo provedor de pagamento)
  • os IPs são estáticos (obviamente, mas se a solicitação for realmente enviada pelo provedor e não, por exemplo, por meio de um formulário oculto na página "pagamento bem-sucedido", que é o caso)
  • eles o notificam imediatamente de quaisquer alterações (ou seu script pode rejeitar solicitações válidas ou aceitar solicitações de IPs não utilizados pelo provedor)
  • todos os sistemas que podem usar o endereço IP (ou seja, os servidores do provedor de pagamento assumindo que o datacenter não está usando alguma configuração de rede de baixa qualidade) são confiáveis ​​o suficiente para não enviar nenhuma notificação falsa.

A falsificação do IP de origem não é possível, pois o TCP usa um handshake de três vias e, com um IP falsificado, o handshake falharia.

Então, basicamente: A autenticação por IP é aceitável se alguns critérios básicos forem atendidos (veja acima), mas é claro que seria mais seguro se eles fornecessem uma maneira de validar a notificação - chamando uma API do lado deles ou usando uma assinatura criptográfica (melhor, pois não pode falhar devido a um servidor remoto inacessível).