Habilidades solidity-security
🔒

solidity-security

Seguro

Desarrollo Seguro de Contratos Inteligentes

También disponible en: wshobson

Previene vulnerabilidades costosas en tu código Solidity. Esta habilidad proporciona patrones de seguridad probados, listas de verificación para detectar vulnerabilidades y técnicas de optimización de gas utilizadas por auditores profesionales para proteger protocolos DeFi y contratos inteligentes.

Soporta: Claude Codex Code(CC)
🥉 72 Bronce
1

Descargar el ZIP de la skill

2

Subir en Claude

Ve a Configuración → Capacidades → Skills → Subir skill

3

Activa y empieza a usar

Pruébalo

Usando "solidity-security". ¿Es segura esta función withdraw? function withdraw() public { uint256 amount = balances[msg.sender]; payable(msg.sender).transfer(amount); balances[msg.sender] = 0; }

Resultado esperado:

Esta función es VULNERABLE a reentrada. La llamada externa ocurre antes de la actualización del estado. Un atacante puede llamar recursivamente a withdraw antes de que el saldo se establezca en cero. CORRECCIÓN: Aplica el patrón Comprobaciones-Efectos-Interacciones: primero establece balances[msg.sender] = 0, luego realiza la llamada externa. Alternativamente, usa ReentrancyGuard de OpenZeppelin con el modificador nonReentrant.

Usando "solidity-security". ¿Cómo añado control de acceso a mi función solo para administradores?

Resultado esperado:

Importa el contrato Ownable de OpenZeppelin y usa el modificador onlyOwner. Alternativamente, implementa control de acceso basado en roles con un mapping y un modificador personalizado. Asegúrate de que la función valida que msg.sender está autorizado antes de ejecutar operaciones sensibles.

Auditoría de seguridad

Seguro
v1 • 2/25/2026

All 72 static analysis findings are false positives. The detected patterns (shell backticks, dynamic requires, weak cryptography) exist within markdown code blocks demonstrating Solidity security concepts and JavaScript testing examples. This skill contains only educational documentation with no executable code. The skill legitimately teaches smart contract security best practices including reentrancy prevention, access control, and gas optimization.

2
Archivos escaneados
562
Líneas analizadas
0
hallazgos
1
Auditorías totales
No se encontraron problemas de seguridad
Auditado por: claude

Puntuación de calidad

38
Arquitectura
100
Mantenibilidad
87
Contenido
30
Comunidad
100
Seguridad
100
Cumplimiento de la especificación

Lo que puedes crear

Construcción de un Protocolo DeFi

Implementa contratos de préstamo, endeudamiento o intercambio seguros con guards de reentrada y control de acceso adecuados.

Auditoría de Contratos Inteligentes

Revisa contratos existentes en busca de vulnerabilidades antes del despliegue a mainnet o integración.

Aprendizaje de Seguridad en Solidity

Comprende vectores de ataque comunes y patrones de mitigación probados para desarrollo seguro.

Prueba estos prompts

Verificación Básica de Seguridad
Revisa mi contrato Solidity en busca de vulnerabilidades comunes incluyendo reentrada, desbordamiento y problemas de control de acceso. Señala cualquier patrón inseguro y sugiere correcciones.
Implementar Protección contra Reentrada
Ayúdame a añadir protección contra reentrada a mi función withdraw. Muéstrame tanto el patrón Comprobaciones-Efectos-Interacciones como el enfoque con ReentrancyGuard de OpenZeppelin.
Optimización de Gas
Analiza mi contrato en busca de oportunidades de optimización de gas. Enfócate en empaquetado de almacenamiento, uso de calldata y reducción de operaciones redundantes manteniendo la seguridad.
Preparación para Auditoría
Revisa mi contrato para preparación de auditoría. Verifica documentación NatSpec, validación de entradas, mecanismos de parada de emergencia y emisión adecuada de eventos. Crea una lista de verificación de seguridad.

Mejores prácticas

  • Aplica siempre el patrón Comprobaciones-Efectos-Interacciones: valida entradas, actualiza el estado, luego realiza llamadas externas
  • Usa contratos auditados de OpenZeppelin para ReentrancyGuard, Ownable y Pausable en lugar de implementaciones personalizadas
  • Habilita Solidity 0.8+ para protección integrada contra desbordamiento/subdesbordamiento o usa la librería SafeMath para versiones anteriores

Evitar

  • Nunca uses tx.origin para autenticación - puede ser vulnerado mediante phishing por contratos maliciosos
  • Evita hacer llamadas externas antes de actualizar el estado del contrato, ya que esto permite ataques de reentrada
  • No uses pragma flotante - siempre fija una versión específica de Solidity para asegurar compilación determinista

Preguntas frecuentes

¿Cuál es la vulnerabilidad más común en contratos inteligentes?
La reentrada es la vulnerabilidad más común y crítica. Ocurre cuando se realizan llamadas externas antes de actualizar el estado, permitiendo a atacantes llamar recursivamente funciones y drenar fondos. Usa siempre el patrón Comprobaciones-Efectos-Interacciones o ReentrancyGuard de OpenZeppelin.
¿Necesito SafeMath con Solidity 0.8+?
No. Solidity 0.8 y versiones posteriores incluyen comprobaciones integradas de desbordamiento y subdesbordamiento que automáticamente revierten en errores aritméticos. SafeMath solo es necesario para contratos que usan versiones de Solidity anteriores a 0.8.
¿Debo usar msg.sender o tx.origin para autenticación?
Usa siempre msg.sender para autenticación. El tx.origin representa el remitente original de la transacción y puede ser explotado mediante ataques de phishing. Nunca uses tx.origin para verificaciones de autorización.
¿Cuál es la diferencia entre patrones de pago pull y push?
Los pagos push implican que el contrato envía fondos a usuarios, lo cual puede fallar si los usuarios tienen problemas con fallback. Los pagos pull permiten a los usuarios retirar sus propios fondos, lo cual es más seguro porque el usuario controla el momento. Prefiere pull sobre push para distribuciones por lotes.
¿Cómo preparo mi contrato para una auditoría profesional?
Añade documentación NatSpec integral, implementa validación de entradas, usa modificadores de control de acceso, emite eventos para cambios de estado, escribe pruebas unitarias que cubran casos extremos, y crea una lista de verificación de seguridad. Asegúrate de no tener advertencias del compilador y usa versiones fijas de pragma.
¿Puede esta habilidad reemplazar una auditoría de seguridad profesional?
No. Esta habilidad ayuda a identificar vulnerabilidades comunes e implementar mejores prácticas, pero no reemplaza una auditoría profesional. Contratos de alto valor, protocolos DeFi y sistemas de producción requieren verificación formal y revisión humana por expertos en seguridad.

Detalles del desarrollador

Estructura de archivos