Claude Code למהנדסי אבטחה
Last updated: January 2026
אבטחה היא הדיסציפלינה ההנדסית היחידה שבה "טוב מספיק" לעולם אינו מקובל. הזרקת SQL אחת שפוספסה, מימוש JWT אחד חלש, rate limit אחד שנשכח — ופריצה מתרחשת. מהנדסי אבטחה נושאים על כתפיהם את הגנת המערכות שכולם אחרים בונים.
Claude Code, מצויד בסקילים ממוקדי אבטחה, הופך לבודק שני ערני שחושב באופן עויין כברירת מחדל — ותופס את מה שעיניים עייפות מפספסות בסקירת קוד.
סקילי אבטחה באוסף SuperSkills
שני סקילים בנויים במיוחד לעבודת אבטחה:
security-reviewer — העדשה ההתקפית. סוקר קוד לאיתור פרצות בכל קטגוריות OWASP Top 10, בודק תבניות לא מאובטחות, קריפטוגרפיה חלשה, פגמי הזרקה ובקרת גישה שבורה. מתייחס לכל קלט כעויין פוטנציאלי.
secure-code-guardian — העדשה ההגנתית. מנחה מימוש תבניות מאובטחות: זרימות auth נכונות, ניהול secrets, ניקוי קלטים, קידוד פלטים וארכיטקטורת defense-in-depth. עוזר לכתוב קוד שמאובטח בעיצוב, לא במקרה.
טענו שניהם יחד לכיסוי אבטחה מקיף — security-reviewer מוצא מה שבור, ו-secure-code-guardian מראה כיצד לתקן נכון.
מניעת OWASP Top 10
OWASP Top 10 מייצג את סיכוני האבטחה הקריטיים ביותר ביישומי ווב. כך סקילי האבטחה מטפלים בכל קטגוריה עיקרית:
1. הזרקה (SQL, NoSQL, Command)
ללא סקיל, Claude עלול לכתוב שאילתה באמצעות שרשור מחרוזות — הטמעת קלט משתמש ישירות במחרוזת SQL. עם security-reviewer פעיל, Claude מסמן זאת מיד וכותב מחדש באמצעות שאילתות מפרמטרות או ORM:
# מאובטח — שאילתה מפרמטרת
query = "SELECT * FROM users WHERE email = %s"
cursor.execute(query, (email,))
# או עם SQLAlchemy ORM — עוד יותר טוב
user = db.session.query(User).filter(User.email == email).first()
הסקיל מבין ששאילתות מפרמטרות אינן "best practice טוב יותר" — הן דרישה קשיחה. שרשור מחרוזות לעולם אינו מקובל לשאילתות המכילות קלט משתמש.
2. אימות שבור
מימוש session תמים אין לו rate limiting, אין regeneration session לאחר התחברות, ומדליף האם חשבון משתמש קיים. עם secure-code-guardian, המימוש מוסיף rate limiting, השוואת סיסמה בזמן קבוע, regeneration session (מניעת session fixation) ותגובות שגיאה אחידות:
app.post('/login', rateLimit({ max: 5, windowMs: 15 * 60 * 1000 }), async (req, res) => {
const { email, password } = req.body;
const user = await User.findOne({ email });
const valid = user && await bcrypt.compare(password, user.passwordHash);
if (!valid) {
// אותה תגובה בין אם המשתמש קיים ובין אם לאו — מונע enumeration
return res.status(401).json({ error: 'Invalid credentials' });
}
req.session.regenerate((err) => {
req.session.userId = user.id;
req.session.createdAt = Date.now();
res.json({ success: true });
});
});
3. Cross-Site Scripting (XSS)
XSS היא פרצת הווב הנפוצה ביותר. סקיל האבטחה אוכף הכנסת תוכן באמצעות שיטות DOM בטוחות — textContent לטקסט רגיל, וספריית sanitizer (כמו DOMPurify) לכל תוכן שדורש markup. לתבניות ב-server-side, הוא מתעקש על מנועי תבניות עם auto-escaping מופעל, לא שרשור מחרוזות ידני לבניית פלט HTML.
4. הגנת CSRF
לפעולות שמשנות מצב (POST/PUT/DELETE), הסקיל מממש את דפוס ה-synchronizer token ומבטיח שהגנת CSRF לעולם לא תהיה פטורה מנתיבים רגישים:
# Flask-WTF מאמת token CSRF אוטומטית על כל נתיבים המשנים מצב
@app.route('/transfer', methods=['POST'])
def transfer():
amount = request.form['amount']
# עיבוד העברה — token CSRF מאומת על ידי middleware של ה-framework
אימות קלטים
סקיל secure-code-guardian אוכף אימות בכל גבול — באמצעות גישת allowlist: ציינו בדיוק מה תקין ודחו כל השאר:
import { z } from 'zod';
const CreateUserSchema = z.object({
email: z.string().email().max(254),
password: z.string().min(12).max(128),
role: z.enum(['user', 'admin']).default('user'),
age: z.number().int().min(18).max(120),
});
app.post('/users', async (req, res) => {
const result = CreateUserSchema.safeParse(req.body);
if (!result.success) {
return res.status(400).json({
error: 'Invalid input',
// לעולם אל תחשפו פרטי סכימה פנימיים בסביבת ייצור
...(process.env.NODE_ENV !== 'production' && { details: result.error.issues })
});
}
const validatedData = result.data;
// המשך עם נתונים בטוחים ומוקלדים
});
הסקיל אוכף אימות server-side (אימות client-side הוא UX, לא אבטחה), סכמות קפדניות והודעות שגיאה שאינן דולפות מידע.
ביקורת תלויות
ליישומים מודרניים יש מאות תלויות עקיפות — כל אחת פני שטח תקיפה פוטנציאלי. עם סקיל האבטחה, Claude בונה ביקורת אוטומטית לתוך זרימת ה-CI שלכם:
name: Security Audit
on:
push:
schedule:
- cron: '0 9 * * 1' # כל יום שני בבוקר
jobs:
audit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm audit --audit-level=high
- uses: ossf/scorecard-action@v2.3.1
with:
results_format: sarif
- uses: github/codeql-action/upload-sarif@v3
סריקת Secrets
Secrets מקודדים בתוך הקוד הם מבין הפרצות הנפוצות והניתנות ביותר למניעה. סקיל האבטחה מגדיר מניעה בשכבות מרובות — hook לפני commit שחוסם secrets לפני שהם נכנסים ל-repo, וצעד CI שסורק את כל ההיסטוריה:
- name: סריקת secrets
uses: trufflesecurity/trufflehog@main
with:
path: ./
base: ${{ github.event.repository.default_branch }}
head: HEAD
extra_args: --only-verified
הסקיל גם מנחה ניהול משתני סביבה: קבצי .env לפיתוח מקומי, מנהלי secrets (AWS Secrets Manager, HashiCorp Vault) לייצור, ו-.gitignore הכולל את כל קבצי .env*.
מימוש אימות: JWT כמו שצריך
JWT נמצא בשימוש שגוי נפוץ. סקיל האבטחה יודע את המלכודות — התקפות בלבול אלגוריתם, ניצול אלגוריתם "none", claims חסרים וחיי token ארוכים מדי:
const JWT_SECRET = process.env.JWT_SECRET; // לפחות 256-bit ערך אקראי
function generateTokens(userId) {
const accessToken = jwt.sign(
{ sub: userId, type: 'access' },
JWT_SECRET,
{
algorithm: 'HS256', // ציינו במפורש — לעולם אל תניחו לheader לקבוע
expiresIn: '15m', // access tokens בחיי מדף קצרים
issuer: 'superskills.app',
audience: 'superskills.app',
}
);
return accessToken;
}
function verifyToken(token) {
return jwt.verify(token, JWT_SECRET, {
algorithms: ['HS256'], // Allowlist — דחיית RS256/none וכו'
issuer: 'superskills.app',
audience: 'superskills.app',
});
}
ציון אלגוריתם מפורש, חיי מדף קצרים, claims נכונים ו-allowlist אלגוריתמים — כל שדה שמימושי JWT "just works" משמיטים.
תרחיש אמיתי: סקירת קוד אבטחה
תנו לסקיל האבטחה controller ובקשו סקירה. endpoint מחיקה פשוט:
@app.route('/admin/users/<user_id>', methods=['DELETE'])
def delete_user(user_id):
user = User.query.get(user_id)
db.session.delete(user)
db.session.commit()
return jsonify({'deleted': user_id})
עם security-reviewer פעיל, Claude מזהה חמש בעיות במעבר אחד:
- אין בדיקת אימות — כל אחד יכול לקרוא ל-endpoint זה
- אין בדיקת הרשאות — משתמשים מאומתים יכולים למחוק כל חשבון
- IDOR — user_id מ-URL לעולם אינו מאומת לבעלות
- אין רישום ביקורת — מחיקות אינן נרשמות לצורך ציות
- אין soft delete — נתונים נהרסים לצמיתות ללא מסלול שחזור
הגרסה המתוקנת מוסיפה אימות, בדיקות תפקיד, מניעת מחיקה עצמית, soft delete ורישום ביקורת — כל זה במעבר אחד.
להתחיל עם סקילי אבטחה
- התקינו את אוסף SuperSkills ב-
~/.claude/skills/ - טענו
security-reviewerבעת סקירת קוד קיים - טענו
secure-code-guardianבעת כתיבת אימות, הרשאות או קוד טיפול בנתונים חדש - טענו שניהם יחד במהלך ביקורות אבטחה
- שאלו ישירות: "סקור endpoint זה לפרצות אבטחה" או "מממש password reset מאובטח"
באגי אבטחה יקרים לאיתור לאחר פריסה ואסוניים לפספוס לחלוטין. זוג עיניים שני עויין — פעיל בכל סקירת קוד — משנה את מה שחולף.
קבלו את 139 הסקילים של SuperSkills כולל חבילת האבטחה המלאה — הורידו ב-$50 והתחילו לשלוח קוד מאובטח יותר מהיום.
Get all 139 skills for $50
One ZIP, instant upgrade. Frontend, backend, DevOps, marketing, and more.
Netanel Brami
Developer & Creator of SuperSkills
Netanel is the founder of SuperSkills and PM at Shamai BeClick. He builds AI-powered developer tools and has crafted 139 expert-level skills for Claude Code across 20 categories.