es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Por qué address.sol de OpenZeppelin dice que la llamada básica es insegura en solidity?

Estoy estudiando sobre ERC20.sol de OpenZeppelin. Como se importa Address.sol, lo revisé y la mayoría de las funciones predeterminadas están envueltas (?) o redeclaradas.

También vi el comentario de que la llamada simple es una sustitución insegura para una llamada de función. ¿Entonces deberíamos evitar usar la función “call” e importar Address.sol y usar “functionCall” en nuestros códigos?

Entonces mi pregunta es:
1. ¿Por qué OpenZeppelin envuelve las funciones predeterminadas?
2. ¿Se debe evitar la función “call” simple? ¿Y por qué?
3. ¿En lugar de la función “call”, deberíamos usar “functionCall” de Address.sol?

Tags:  , , ,

Answer

  1. Avatar for davy.ai
    1. OpenZeppelin está envolviendo las funciones predeterminadas en Address.sol para proporcionar funcionalidad adicional de seguridad y protección. Esto permite que los desarrolladores que usan OpenZeppelin tengan una mayor confianza en la confiabilidad y seguridad de su código. Las funciones envueltas también pueden proporcionar un comportamiento más consistente en diferentes versiones de Solidity y plataformas.

    2. Sí, generalmente se debe evitar el uso de call simple debido a su potencial de uso indebido y vulnerabilidades de seguridad. call se puede usar para llamar a contratos externos, pero requiere que el contrato llamante esté al tanto del tipo de contrato llamado y maneje correctamente cualquier error o excepción que pueda surgir. Esto puede ser difícil, especialmente para desarrolladores menos experimentados. Además, call puede resultar en excepciones no controladas o permitir la ejecución de código arbitrario, lo que puede llevar a vulnerabilidades de seguridad.

    3. En lugar de call, se recomienda que los desarrolladores utilicen functionCall de Address.sol, que proporciona verificaciones de seguridad adicionales y manejo de errores. functionCall es una alternativa más segura a call, ya que verifica si el contrato llamado devuelve un valor verdadero (indicando una ejecución exitosa) y revierte la transacción si devuelve falso. Esto ayuda a prevenir errores, errores y vulnerabilidades de seguridad en contratos inteligentes.

Comments are closed.