Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
git clone --depth 1 https://github.com/lacymorrow/paperclip-hubWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/rules/lacymorrow/paperclip-hub/webhook-security)<a href="https://agentmods.dev/rules/lacymorrow/paperclip-hub/webhook-security"><img src="https://agentmods.dev/badge/rules/lacymorrow/paperclip-hub/webhook-security/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/rules/lacymorrow/paperclip-hub/webhook-security"><img src="https://agentmods.dev/badge/rules/lacymorrow/paperclip-hub/webhook-security.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00000 | $0.00904 |
| Opus 5.5 | $0.00000 | $0.00362 |
| Sonnet 5.5 | $0.00000 | $0.00181 |
| Haiku 4.5 | $0.00000 | $0.00090 |
Grade A, and why
webhook-security scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 125 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Webhook Security Best Practices
Signature Verification
- ALWAYS verify webhook signatures using timing-safe comparison
- Never accept webhooks without proper signature validation
- Use environment variables for webhook secrets
- Implement multiple signature algorithm support when available
- Log signature verification failures for security monitoring
- Never expose signature verification logic in error messages
- Use raw request body for signature validation (before JSON parsing)
Request Validation
- Validate all webhook payload fields before processing
- Implement strict JSON schema validation
- Check for required fields and proper data types
- Sanitize all input data before database operations
- Validate webhook event types against expected values
- Implement payload size limits to prevent DoS attacks
- Check request headers for proper content-type
Idempotency
- Implement idempotency using unique event identifiers
- Store processed webhook IDs to prevent duplicate processing
- Use database transactions for atomic operations
- Handle race conditions with proper locking mechanisms
- Implement retry logic for failed webhook processing
- Set appropriate timeouts for database operations
- Log all idempotency checks and outcomes
Error Handling
- Return proper HTTP status codes (200 for success, 4xx for client errors)
- Implement comprehensive try/catch blocks
- Log all webhook processing errors with context
- Never expose internal error details in responses
- Implement graceful degradation for non-critical failures
- Use structured logging for better error analysis
- Set up alerts for webhook failure patterns
Rate Limiting
- Implement rate limiting per webhook source
- Use sliding window or token bucket algorithms
- Configure different limits for different event types
- Monitor and alert on rate limit violations
- Implement progressive backoff for repeated violations
- Log all rate limiting actions
- Allow for burst traffic during normal operations
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- yesterday First seen · 125 lines · 0 tokens per session scan A 7f8e58d426b5
webhook-security is a cursor rule published in the GitHub repository lacymorrow/paperclip-hub (15 stars, last pushed yesterday), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 904 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-11-10.
webhook-security compared with cursor rules from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| webhook-securitylacymorrow/paperclip-hub | Cursor rule | 15 | yesterday | MIT | A | 0 | Cursor |
| always-push-pritsmemeworks/adhx | Cursor rule | 19 | 5d ago | MIT | A | 279 | Cursor |
| codex-premium-website-skillsTheGoat395/Codex-Skills | Cursor rule | 137 | 20d ago | MIT | A | 0 | Cursor |
| context-managementvibestackdev/vibe-stack | Cursor rule | 8 | yesterday | MIT | A | 0 | Cursor |
| project-contextvibestackdev/vibe-stack | Cursor rule | 8 | yesterday | MIT | A | 508 | Cursor |
| typescript-coding-styleWebDevPeterGriffin/The-VibeCode-Bible | Cursor rule | 42 | 7d ago | none | A | 128 | Cursor |
| javascript-typescript-code-styleWebDevPeterGriffin/The-VibeCode-Bible | Cursor rule | 42 | 7d ago | none | A | 88 | Cursor |