#690 by GitHub stars
BehiSecc/VibeSec-Skill
This skill helps Claude write secure web applications. Use this when working on any web application or when a user requests a scan or audit to ensure security best practices are followed.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
0590993b35ad → 0590993b35ad
Heat
4.2- Star growth, last 7 daysAhead of 59% of tracked repositories
- Star growth, last 24 hoursAhead of 91% of tracked repositories
- Rank movement, last 7 daysAhead of 16% of tracked repositories
- Commits, last 30 daysAhead of 0% of tracked repositories
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekAhead of 0% of tracked repositories
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
Individual skills in this repository
How it works
VibeSec-Skill
When your agent uses it
This skill helps Claude write secure web applications. Use this when working on any web application or when a user requests a scan or audit to ensure security best practices are followed.
What it loads into context
Frontmatter
44 tokensAlways available to the agent
SKILL.md
5,791 tokensWhen the skill is activated
Reference documents
1,067 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Overview
- Access Control Issues
- Client-Side Bugs
- Open Redirect
- Server-Side Bugs
- Security Headers Checklist
- JWT Security
- API Security
- General Security Principles
Files
LICENSEasset11,357 bytesREADME.mddoc4,310 bytesSKILL.mdcore24,779 bytesSKILL.mdcore24,779 bytesSKILL.mdcore24,779 bytesSKILL.mdcore24,779 bytesSKILL.mdcore24,779 bytesSKILL.mdcore24,779 bytesSKILL.mdcore24,779 bytes
Read SKILL.md
# Secure Coding Guide for Web Applications
## Overview
This guide provides comprehensive secure coding practices for web applications. As an AI assistant, your role is to approach code from a **bug hunter's perspective** and make applications **as secure as possible** without breaking functionality.
**Key Principles:**
- Defense in depth: Never rely on a single security control
- Fail securely: When something fails, fail closed (deny access)
- Least privilege: Grant minimum permissions necessary
- Input validation: Never trust user input, validate everything server-side
- Output encoding: Encode data appropriately for the context it's rendered in
---View the complete source on GitHubSkills included
- VibeSec-Skill
Repository facts
- License
- Apache-2.0
- Created
- Feb 2, 2026
- Last pushed
- Feb 17, 2026
- Forks
- 124
- Open issues
- 2
- Project activity
- Slowing
Rank over the last 12 weeks
Now #690 · best #488 · down 111 in 30 days
- #676 on Oct 31
- #678 on Nov 1
- #683 on Nov 2
- #686 on Nov 3
- #688 on Nov 4
- #690 since Nov 5
73 earlier periods
- #500 on Aug 2
- #525 on Aug 6
- #499 from Aug 8 to Aug 9
- #518 on Aug 10
- #517 on Aug 11
- #513 on Aug 12
- #517 on Aug 13
- #510 on Aug 14
- #488 on Aug 15
- #498 on Aug 16
- #502 on Aug 17
- #518 on Aug 18
- #510 on Aug 19
- #509 on Aug 20
- #511 on Aug 21
- #494 on Aug 22
- #516 on Aug 23
- #517 on Aug 24
- #529 on Aug 25
- #519 on Aug 26
- #530 on Aug 27
- #528 on Aug 28
- #513 on Aug 29
- #503 on Aug 30
- #528 on Aug 31
- #531 on Sep 1
- #526 on Sep 2
- #530 on Sep 3
- #514 on Sep 4
- #508 on Sep 5
- #522 on Sep 6
- #524 on Sep 7
- #543 on Sep 8
- #535 on Sep 10
- #523 on Sep 12
- #525 on Sep 13
- #545 on Sep 14
- #533 on Sep 15
- #545 on Sep 16
- #530 on Sep 19
- #544 on Sep 20
- #545 on Sep 21
- #556 on Sep 22
- #549 on Sep 23
- #536 on Sep 24
- #531 on Sep 25
- #556 on Sep 27
- #558 on Sep 28
- #581 on Sep 29
- #570 on Sep 30
- #558 on Oct 1
- #563 on Oct 2
- #545 on Oct 3
- #575 on Oct 6
- #579 on Oct 7
- #602 on Oct 8
- #592 on Oct 9
- #588 on Oct 12
- #590 on Oct 13
- #601 on Oct 14
- #600 on Oct 15
- #602 on Oct 16
- #586 on Oct 17
- #581 on Oct 18
- #602 on Oct 19
- #613 on Oct 20
- #620 on Oct 21
- #599 on Oct 23
- #591 on Oct 24
- #662 on Oct 25
- #669 on Oct 28
- #672 on Oct 29
- #674 on Oct 30
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 3, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 6 notes
SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- 1 dangerous shell commandin 1 file: SKILL.md:430
- 47 network referencesin 3 files: SKILL.md:125 README.md:31 LICENSE:1
- No hidden or obfuscated text
- No instruction overrides
- No executable scripts
- 1 reference to secretsin 1 file: SKILL.md:665
- No requests to vote in Hot
Show all 49 signals by file
LICENSE
README.md
- Network accessline 31
>[!Tip] >This skill already covers 60-70% of the common vulnerabilities. However, if you need a more robust version with more vulnerability coverage, please visit [vibesec.sh](https://vibesec.sh/) - Network accessline 32
>This skill already covers 60-70% of the common vulnerabilities. However, if you need a more robust version with more vulnerability coverage, please visit [vibesec.sh](https://vibesec.sh/) - Network accessline 39
* Clone this repository: `git clone https://github.com/BehiSecc/VibeSec-Skill` - Network accessline 46
* Clone this repository: `git clone https://github.com/BehiSecc/VibeSec-Skill` - Network accessline 53
* Clone this repository: `git clone https://github.com/BehiSecc/VibeSec-Skill` - Network accessline 61
* Clone this repository: `git clone https://github.com/BehiSecc/VibeSec-Skill` - Network accessline 69
* Clone this repository: `git clone https://github.com/BehiSecc/VibeSec-Skill` - Network accessline 131
If you want to contact me, you can reach me on [X](https://x.com/Behi_Sec).
SKILL.md
- Network accessline 125
img-src 'self' data: https:; font-src 'self'; connect-src 'self' https://api.yourdomain.com; - Network accessline 126
font-src 'self'; connect-src 'self' https://api.yourdomain.com; frame-ancestors 'none'; - Network accessline 127
connect-src 'self' https://api.yourdomain.com; - Network accessline 283
| Technique | Example | Why It Works | |-----------|---------|--------------| | @ symbol | `https://legit.com@evil.com` | Browser navigates to evil.com with legit.com as username | - Network accessline 284
|-----------|---------|--------------| | @ symbol | `https://legit.com@evil.com` | Browser navigates to evil.com with legit.com as username | | Subdomain abuse | `https://legit.com.evil.com` | evil.com owns the subdomain | - Network accessline 285
| @ symbol | `https://legit.com@evil.com` | Browser navigates to evil.com with legit.com as username | - Network accessline 286
| Subdomain abuse | `https://legit.com.evil.com` | evil.com owns the subdomain | - Network accessline 287
| Protocol tricks | `javascript:alert(1)` | XSS via redirect | | Double URL encoding | `%252f%252fevil.com` | Decodes to `//evil.com` after double decode | | Backslash | `https://legit.com\@evil.com` | Some parsers normalize `\` to `/` | - Network accessline 288
| Double URL encoding | `%252f%252fevil.com` | Decodes to `//evil.com` after double decode | | Backslash | `https://legit.com\@evil.com` | Some parsers normalize `\` to `/` | | Null byte | `https://legit.com%00.evil.com` | Some parsers trun - Network accessline 289
| Backslash | `https://legit.com\@evil.com` | Some parsers normalize `\` to `/` | - Network accessline 290
| Null byte | `https://legit.com%00.evil.com` | Some parsers truncate at null | - Network accessline 291
| Tab/newline | `https://legit.com%09.evil.com` | Whitespace confusion | - Network accessline 292
| Unicode normalization | `https://legіt.com` (Cyrillic і) | IDN homograph attack | - Network accessline 293
| Data URLs | `data:text/html,<script>...` | Direct payload execution | | Protocol-relative | `//evil.com` | Uses current page's protocol | | Fragment abuse | `https://legit.com#@evil.com` | Parsed differently by different libraries | - Network accessline 295
| Fragment abuse | `https://legit.com#@evil.com` | Parsed differently by different libraries | - Network accessline 351
| Technique | Example | Description | |-----------|---------|-------------| | Decimal IP | `http://2130706433` | 127.0.0.1 as decimal | - Network accessline 352
|-----------|---------|-------------| | Decimal IP | `http://2130706433` | 127.0.0.1 as decimal | | Octal IP | `http://0177.0.0.1` | Octal representation | - Network accessline 353
| Decimal IP | `http://2130706433` | 127.0.0.1 as decimal | - Network accessline 354
| Octal IP | `http://0177.0.0.1` | Octal representation | - Network accessline 355
| Hex IP | `http://0x7f.0x0.0x0.0x1` | Hexadecimal | - Network accessline 356
| IPv6 localhost | `http://[::1]` | IPv6 loopback | - Network accessline 357
| IPv6 mapped IPv4 | `http://[::ffff:127.0.0.1]` | IPv4-mapped IPv6 | - Network accessline 358
| Short IPv6 | `http://[::]` | All zeros | - Network accessline 359
| DNS rebinding | Attacker's DNS returns internal IP | First request resolves to external IP, second to internal | | CNAME to internal | Attacker domain CNAMEs to internal | DNS points to internal hostname | | URL parser confusion | `http:/ - Network accessline 360
| CNAME to internal | Attacker domain CNAMEs to internal | DNS points to internal hostname | | URL parser confusion | `http://attacker.com#@internal` | Different parsing behaviors | | Redirect chains | External URL redirects to internal | F - Network accessline 361
| URL parser confusion | `http://attacker.com#@internal` | Different parsing behaviors | - Network accessline 362
| Redirect chains | External URL redirects to internal | Follow redirects carefully | | IPv6 scope ID | `http://[fe80::1%25eth0]` | Interface-scoped IPv6 | | Rare IP formats | `http://127.1` | Shortened IP notation | - Network accessline 363
| IPv6 scope ID | `http://[fe80::1%25eth0]` | Interface-scoped IPv6 | - Network accessline 364
| Rare IP formats | `http://127.1` | Shortened IP notation | - Network accessline 375
Block access to cloud metadata endpoints: - AWS: `169.254.169.254` - GCP: `metadata.google.internal`, `169.254.169.254`, `http://metadata` - Network accessline 376
- AWS: `169.254.169.254` - GCP: `metadata.google.internal`, `169.254.169.254`, `http://metadata` - Azure: `169.254.169.254` - Network accessline 377
- GCP: `metadata.google.internal`, `169.254.169.254`, `http://metadata` - Dangerous shell operationline 430
| Filename injection | `; rm -rf /` in filename | Sanitize filenames, use random names | - Network accessline 527
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true); - Network accessline 528
dbf.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true); - Network accessline 529
dbf.setFeature("http://xml.org/sax/features/external-general-entities", false); - Network accessline 530
dbf.setFeature("http://xml.org/sax/features/external-parameter-entities", false); - Access to secretsline 665
[Credential-related source omitted]
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Signal confidence: 2 facts
- Network access in code of the SKILL.mdSKILL.md:127High confidence
- Access to secrets in code of the SKILL.md: a variable, placeholder or call, not a stored valueSKILL.md:665Low confidence
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Unknown | No evidence | |
| Codex | Unknown | No evidence | |
| Cursor | Unknown | No evidence | |
| Gemini CLI | Unknown | No evidence | |
| GitHub Copilot | Unknown | No evidence | |
| OpenCode | Unknown | No evidence |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.
Explore alternatives and comparisons
Add this badge to your README
It updates every night and links to this page.
[](https://hotskills.dev/skill/behisecc-vibesec-skill/)