# Ataque de repetição (Replay attack)

Um ataque de repetição assinado em um contrato inteligente é um tipo de vulnerabilidade de segurança em que um invasor intercepta uma mensagem assinada válida e a reproduz no contrato. A mensagem normalmente é assinada com uma chave privada e contém instruções executáveis para o contrato inteligente. Ao reproduzir essa mensagem, o invasor pode enganar o contrato para que execute novamente as mesmas instruções, o que pode resultar em comportamentos indesejados ou até perdas financeiras.

**Exemplo:**\
Um contrato inteligente permite que os usuários retirem fundos de sua conta por meio do envio de uma mensagem autorizada e assinada. Um invasor pode interceptar uma mensagem de saque válida de um usuário legítimo e, posteriormente, reproduzir essa mensagem. Mesmo que o contexto tenha mudado, o contrato inteligente pode considerar a mensagem assinada ainda válida, por ter sido assinada digitalmente. Isso poderia permitir que o invasor retirasse fundos da conta do usuário.

**Mitigação:**\
Para prevenir ataques de repetição assinados, os desenvolvedores de contratos inteligentes podem implementar várias medidas de segurança, incluindo:

* O uso de identificadores únicos para cada mensagem (*nonces*);
* A adição de restrições baseadas em tempo para a validade das mensagens assinadas.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://edp.ethkipu.org/modulo-5/seguridad-pruebas-y-auditoria/seguridad/principales-vulnerabilidades-en-smart-contracts/replay-attack-ataque-de-repeticion.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
