Proteção contra malware/vírus que manipula linha digitável de boleto online

Jul 2, 2014 at 9:15 PM
Usamos o BoletoNet aqui na empresa, que é muito bom por sinal, e essa semana tivemos um problema com um cliente, que teve o computador infectado por um vírus que manipula a linha digitável de um boleto online:
Ele acessou o boleto através de nossa página, mas, o vírus alterou o texto do código do banco e a linha digitável do boleto, sem que o cliente percebesse. O valor e vencimento não foram alterados, mas o código do banco de destino foi alterado (de Bradesco para Banco do Brasil) e as informações de agência e conta também, fazendo com que o dinheiro caísse para outra pessoa.

Depois desse problema fiquei pensando em uma forma de resolver isso, e, uma solução que pensei seria transformar a saída HTML do boleto em uma imagem, como acontece com a NF-e da Prefeitura de SP (peguei um exemplo qualquer na internet).

Entretanto, após uma pesquisa rápida vi que não há uma forma fácil de fazer isso usando somente o framework .NET, teria que usar algum componente pago de terceiros, ou fazer grandes gambiarras (como a solução do componente System.Windows.Forms.WebBrowser no ambiente Web).

Pensei então que, já que o código de barras já é criado como uma imagem única (coisa que já frustra a ação do vírus em relação ao código de barras, porque ele espera uma imagem para cada barra), o BoletoNet poderia ser modificado para gerar uma imagem também do código do banco e outra da linha digitável, ao invés de mandar apenas texto para o browser. Creio que isso acabaria com a ação do vírus de manipular a linha digitavel, de forma que o pagamento fosse repassado para o destino indevido.

Ainda tentaria melhorar a segurança da geração da imagem do código de barras (e as outras duas imagens que citei acompanhariam o mesmo conceito), porque hoje o número do código de barras é passado via QueryString na própria URL, o que facilita a manipulação manual via código-fonte da página (também já tivemos o caso de um cliente que alterou os textos manualmente). Por exemplo, via Chome ou IE, basta clicar com o botão direito do mouse sobre a imagem do código de barras (ou da linha digitavel) e selecionar 'Inspecionar elemento' para alterar trechos do código de barras e/ou da linha digitável, e imprimir o documento manipulado como se fosse o original inalterado.

Não sei ainda o que poderia ser feito, mas, talvez a linha digitável que comporia a imagem, e os números que comporiam o código de barras, devessem ser passados somente no lado do servidor, e talvez fosse criada alguma variável de sessão, com um nome aleatório, que armazenasse a informação de fato, de forma que as numerações originais não ficassem expostas e não pudessem ser manipuladas.
Aug 8, 2014 at 6:38 PM
LoboFX você implementou a solução proposta? Estou pensando em fazer essa implementação.

Abraços.
Aug 12, 2014 at 12:58 PM
Edited Aug 12, 2014 at 12:58 PM
Sobre a geração do boleto em PDF como solução apresentada nesse fórum, será que não poderia nos ajudar?
Aug 21, 2014 at 1:13 PM
Olá, fiz uma implementação utilizando a itextsharp. A partir do html gerado, gero uma imagem, e quando necessário, da imagem um pdf. Acredito que dessa forma o boleto não possa ser alterado.
Aug 26, 2014 at 7:14 PM
Olá Rafael,

Por gentileza, você poderia passar o caminho das pedras de como você fez essa implementação utilizando o itextsharp para gerar a imagem e o PDF?

Obrigado!