Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Mauricio M Filho

[Resolvido] Evitar "clonagem" de formulário

Recommended Posts

Olá.

 

O meu problema é o seguinte, tenho um código de botão "comprar" que faz integração com o sistema de pagamento on-line MoIP.

 

O código do botão é o seguinte:

<form method='post' id='enviar' action='https://desenvolvedor.moip.com.br/sandbox/PagamentoMoIP.do'>

<input type='hidden' name='id_carteira' value='jose@teste.com'/>
<input type='hidden' name='valor' value='1400'/>
<input type='hidden' name='nome' value='Meu produto'/>
<input type='hidden' name='descricao' value='Descricao'/>
<input type='hidden' name='id_transacao' value='abc123x'/>

<input type='image' name='submit' src='https://desenvolvedor.moip.com.br/sandbox/imgs/buttons/bt_comprar_c02_e04.png' alt='Meu Produto' border='0' />
</form>

 

Da forma que esta ai, é enviado para o servidor do MoIP via $_POST informações do vendedor, codigo do produto, valor, etc.

Se um usuário mal-intencionado baixar o código HTML e alterar, por exemplo, o value do preço do produto vai consegui efetuar uma compra por um preço menor. <_<

 

Alguma idéia de como validar os $_POST antes de enviar o formulário?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o certo seria o moip oferecer algum recurso de codificação para o valor, entretanto, você mesmo pode fazer um codificador próprio ou alguma tecnica que oculte o preço do usuario e principalmente evite que seja modificado client-side

 

1400 seria algo assim:

<input type='hidden' name='valor' value='dAdr2Sp'/>

 

 

no action, ao invés de enviar diretamente ao moip, envie para um script local onde será feito a decodificação e envio para o serviço de gateway

<form method='post' id='enviar' action='checkout.php'>

 

 

em checkout.php utilize curl ou socket para enviar pro gateway "https://desenvolvedor.moip.com.br/sandbox/PagamentoMoIP.do"

com os parametros na regra definida por eles.

 

 

Dependendo do caso não precisa codificar e decodificar. Bastaria apenas do id do produto e no server-side você faria a busca pelo preço.

Um problema em fazer a busca do preço on-the-fly é para determinadas lojas que alteram preços muitas vezes ao dia.

Um cliente pode colocar no cart um item por um preço X, mas se a consulta for on-the-fly, ao finalizar a compra, o cliente poderá ter a surpresa de ver um preço diferente. Isso pode gerar problema caso seja um valor maior daquele que ele tinha visto no momento em que colocou no cart.

É mais ou menos como você estar andando numa loja física, pega um produto na prateleira por 10 reais, chega no guichê de pagamento e o preço altera pra 15 reais. Isso pode ser caracterizado, segundo termos jurídicos, como propaganda enganosa.

Por isso, para evitar importúnios, a técnica mais segura é por codificação.

 

Quanto a codificação, obviamente, não utilize codificações simples como base64 ou coisas do gênero, pois são facilmente identificadas.

 

Procure por scripts de codificação que permitam utilizar "salt".

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei como funciona esse sistema de pagamentos, mas é impossível ele se integrar somente com javascript.

O correto é você tratar esses dados com alguma linguagem server-side como o PHP e verificar os valores junto ao banco de dados...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Andei procurando um pouco mais.. até encontrei um plugin oficial do MoIP para o wordpress, fiquei até feliz "vou ter menos trabalho"... só que o plugin usa o mesmo código para o botão que postei acima. ¬¬

 

Eles tem até um site de exemplo com o plugin funcionando, testei e consegui modificar o valor.

 

mas encontrei uma API-PHPque promete integrar todo o sistema com segurança, vou da uma estudada nela.

 

Obrigado pela força galera. :joia:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Testei alguns modulos prontos deles para sistema de e-commerce e nada resolvido. o problema com alteração de valor continua. hehe

 

Isso é muito ruim para sistemas totalmente automáticos (usando a notificação de status de pagamento para liberar produtos digitais por exemplo) .

 

Em um dos teste consegui modificar o valor para 1 centavo, com a simulação desse pagamento o vendedor ficaria com um debito de 38 centavos devido a cobrança de taxas. :(

 

Eu acho melhor desistir da MoIP... hehe

 

Alguem usa um sistema de pagamento online que tenha essa possibilidade de integração (notificar status do pagamento, etc..) sem essas falhas de segurança?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.