solidity-security
Ajuda seu agente a aplicar práticas de segurança em contratos inteligentes (smart contracts). É útil para proteger aplicações blockchain contra falhas.
O que ela faz
Esta ferramenta ajuda a escrever códigos de contratos inteligentes (programas para blockchain) mais seguros. Ela ensina as melhores práticas para evitar erros comuns e ataques, garantindo que seus programas funcionem corretamente e sem falhas.
Quando usar
- ✓Ao criar um novo contrato inteligente.
- ✓Ao revisar um contrato já existente para encontrar problemas.
- ✓Ao implementar medidas de segurança em aplicativos de blockchain.
Exemplo do que pedir para a IA
“Como posso garantir que meu contrato inteligente não seja hackeado por reentrância?”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
Ela analisa seu código e sugere padrões de programação seguros. Também mostra exemplos de como ataques comuns funcionam e como evitá-los, usando testes e documentação clara.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add wshobson/agents --skill solidity-securityOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/wshobson/agents/main/plugins/blockchain-web3/skills/solidity-security/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Segurança em Solidity
Domine as melhores práticas de segurança de contratos inteligentes, prevenção de vulnerabilidades e padrões de desenvolvimento seguro em Solidity.
Quando Usar Esta Habilidade
- Escrever contratos inteligentes seguros
- Auditar contratos existentes em busca de vulnerabilidades
- Implementar protocolos DeFi seguros
- Prevenir problemas de reentrância, overflow e controle de acesso
- Otimizar o uso de gas mantendo a segurança
- Preparar contratos para auditorias profissionais
- Entender vetores de ataque comuns
Padrões Detalhados e Exemplos Práticos
A documentação detalhada dos padrões está em references/details.md. Leia este arquivo quando o nível de navegação acima for insuficiente.
Testando para Segurança
// Hardhat test example
const { expect } = require("chai");
const { ethers } = require("hardhat");
describe("Security Tests", function () {
it("Should prevent reentrancy attack", async function () {
const [attacker] = await ethers.getSigners();
const VictimBank = await ethers.getContractFactory("SecureBank");
const bank = await VictimBank.deploy();
const Attacker = await ethers.getContractFactory("ReentrancyAttacker");
const attackerContract = await Attacker.deploy(bank.address);
// Deposit funds
await bank.deposit({ value: ethers.utils.parseEther("10") });
// Attempt reentrancy attack
await expect(
attackerContract.attack({ value: ethers.utils.parseEther("1") }),
).to.be.revertedWith("ReentrancyGuard: reentrant call");
});
it("Should prevent integer overflow", async function () {
const Token = await ethers.getContractFactory("SecureToken");
const token = await Token.deploy();
// Attempt overflow
await expect(token.transfer(attacker.address, ethers.constants.MaxUint256))
.to.be.reverted;
});
it("Should enforce access control", async function () {
const [owner, attacker] = await ethers.getSigners();
const Contract = await ethers.getContractFactory("SecureContract");
const contract = await Contract.deploy();
// Attempt unauthorized withdrawal
await expect(contract.connect(attacker).withdraw(100)).to.be.revertedWith(
"Ownable: caller is not the owner",
);
});
});
Preparação para Auditoria
contract WellDocumentedContract {
/**
* @title Well Documented Contract
* @dev Example of proper documentation for audits
* @notice This contract handles user deposits and withdrawals
*/
/// @notice Mapping of user balances
mapping(address => uint256) public balances;
/**
* @dev Deposits ETH into the contract
* @notice Anyone can deposit funds
*/
function deposit() public payable {
require(msg.value > 0, "Must send ETH");
balances[msg.sender] += msg.value;
}
/**
* @dev Withdraws user's balance
* @notice Follows CEI pattern to prevent reentrancy
* @param amount Amount to withdraw in wei
*/
function withdraw(uint256 amount) public {
// CHECKS
require(amount <= balances[msg.sender], "Insufficient balance");
// EFFECTS
balances[msg.sender] -= amount;
// INTERACTIONS
(bool success, ) = msg.sender.call{value: amount}("");
require(success, "Transfer failed");
}
}
Perguntas frequentes
O que são 'vulnerabilidades' em contratos inteligentes?
São falhas no código que podem ser exploradas por hackers para roubar dinheiro ou causar outros problemas.
O que é 'reentrância'?
É um tipo de ataque onde um contrato malicioso chama repetidamente uma função antes que a primeira chamada seja concluída, podendo esvaziar carteiras.
O que é 'auditoria de contratos'?
É o processo de revisar o código de um contrato inteligente para encontrar e corrigir falhas de segurança antes que ele seja usado.
Detalhes
Descrição original do autor
Master smart contract security best practices to prevent common vulnerabilities and implement secure Solidity patterns. Use when writing smart contracts, auditing existing contracts, or implementing security measures for blockchain applications.
repo: wshobson/agents
Popularidade
- Estrelas no GitHub
- 41 mil
- Posição no ranking
- #4815
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
screen-reader-testing
Faz seu agente testar sites usando leitores de tela para garantir que sejam acessíveis.
wshobson/agents
wcag-audit-patterns
Ajuda seu agente a auditar sites para acessibilidade e corrigir problemas de acordo com as diretrizes WCAG.
wshobson/agents
multi-reviewer-patterns
Faz seu agente coordenar revisões de código paralelas, deduplicando achados e consolidando relatórios.
wshobson/agents
parallel-debugging
Permite ao agente depurar problemas complexos com investigações paralelas e análise de causa raiz.
wshobson/agents
Skills parecidas
django-security
Ajuda seu agente a implementar práticas de segurança em aplicações Django. Ele foca em autenticação, autorização e prevenção contra ataques comuns, garantindo um código mais seguro.
affaan-m/ECC
laravel-security
Ajuda seu agente a proteger aplicações Laravel contra ameaças. Implementa práticas de segurança para autenticação, autorização e prevenção de ataques comuns.
affaan-m/ECC
module-regression
Ajuda seu agente a gerenciar mudanças em projetos grandes. Garante que alterações em uma parte do código não quebrem outras partes.
affaan-m/ECC