.internal-skills/security-specialist/SKILL.md
Especialista em Segurança de Aplicações. Use para: - Implementar autenticação e autorização - Proteger contra vulnerabilidades (OWASP Top 10) - Security code review - Criptografia e gestão de secrets - Compliance (LGPD, GDPR)
npx skillsauth add suportebahia/equipe-devs Equipe SBahia - Security SpecialistInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
// Access + Refresh Token
const generateTokens = (user) => {
const accessToken = jwt.sign(
{ userId: user.id, roles: user.roles },
process.env.JWT_SECRET,
{ expiresIn: '15m' }
);
const refreshToken = jwt.sign(
{ userId: user.id, type: 'refresh' },
process.env.REFRESH_SECRET,
{ expiresIn: '7d' }
);
return { accessToken, refreshToken };
};
// Password Hashing
const hashPassword = async (password) => {
return bcrypt.hash(password, 12); // Cost factor 12
};
const verifyPassword = async (password, hash) => {
return bcrypt.compare(password, hash);
};
// Middleware de autorização
const authorize = (...allowedRoles) => {
return (req, res, next) => {
if (!req.user) {
return res.status(401).json({ error: 'Unauthorized' });
}
if (!allowedRoles.includes(req.user.role)) {
return res.status(403).json({ error: 'Forbidden' });
}
next();
};
};
// Uso nas rotas
router.post('/admin/users',
authenticate,
authorize('admin'),
createUser
);
// 1. SQL Injection - Use parameterized queries
// BAD
db.query(`SELECT * FROM users WHERE id = ${userId}`);
// GOOD
db.query('SELECT * FROM users WHERE id = $1', [userId]);
// 2. XSS - Escape output
import DOMPurify from 'isomorphic-dompurify';
const safeContent = DOMPurify.sanitize(userInput);
// 3. CSRF - CSRF tokens
const csrfToken = req.csrfToken();
res.cookie('CSRF-TOKEN', csrfToken);
// 4. Rate Limiting
import rateLimit from 'express-rate-limit';
const limiter = rateLimit({
windowMs: 15 * 60 * 1000, // 15 minutes
max: 100, // limit each IP to 100 requests per windowMs
message: 'Too many requests'
});
// Encryption at rest (AES-256)
import crypto from 'crypto';
const encrypt = (text, key) => {
const iv = crypto.randomBytes(16);
const cipher = crypto.createCipheriv('aes-256-gcm', key, iv);
let encrypted = cipher.update(text, 'utf8', 'hex');
encrypted += cipher.final('hex');
const authTag = cipher.getAuthTag();
return { iv: iv.toString('hex'), encrypted, authTag: authTag.toString('hex') };
};
// Hash de dados sensíveis (LGPD)
const hashSensitive = (data) => {
return crypto.createHash('sha256').update(data).digest('hex');
};
// Helmet.js
import helmet from 'helmet';
app.use(helmet());
app.use(helmet.contentSecurityPolicy({
directives: {
defaultSrc: ["'self'"],
scriptSrc: ["'self'", "'unsafe-inline'"],
styleSrc: ["'self'", "'unsafe-inline'"],
imgSrc: ["'self'", "data:", "https:"],
}
}));
// CORS
app.use(cors({
origin: ['https://app.example.com'],
credentials: true,
}));
| Tipo | Ferramenta | |------|------------| | SAST | SonarQube, Snyk, CodeQL | | DAST | OWASP ZAP, Burp Suite | | Secrets | HashiCorp Vault, AWS Secrets Manager | | MFA | Authy, Google Authenticator | | WAF | CloudFlare, AWS WAF |
testing
Sistema de agentes IA para coordenação de projetos de desenvolvimento. Use este skill para iniciar qualquer projeto. Este skill orquestra automaticamente os agentes especializados conforme a necessidade: - Análise e planejamento de projetos - Coordenação de múltiplos agentes - Gestão de tasks e dependências
development
Orquestrador principal do ecossistema de agentes IA Equipe SBahia. Use para: - Coordenar projetos de desenvolvimento web - Alocar agentes especializados - Gerenciar workflow completo - Garantir padrões MVC e de mercado Agents disponíveis: leadership-tech, uxui-designer, frontend-developer, backend-controller, backend-model, dba-specialist, security-specialist, api-gateway-specialist, mobile-developer, data-engineer, elastic-engineer, machine-learning-engineer, testing-specialist, error-handling-specialist, product-owner, devops-engineer, solutions-engineer
testing
Skill para Designer UX/UI. Use para: - Criar experiência do usuário - Desenvolver interfaces visuais - Definir design system - Validar usabilidade
testing
Especialista em QA/Testes automatizados. Use para: - Criar estratégia de testes completa - Implementar testes unitários, integração e E2E - TDD/BDD quando aplicável - Coverage analysis - Testes de performance e carga