Token导航 LogoToken导航

Agent Skill · 研究检索

defense-in-depth(纵深防御)

defense-in-depth 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

defense-in-depth 是研究检索类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为接触敏感数据;许可证为 MIT,暂无第三方扫描结果,按安装量在研究检索类的 73,674 个 Skill 里排第 10,018。

总安装 13,225周安装 562GitHub Stars 公开资料未说明下载 7,270核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
MIT

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:defense-in-depth(纵深防御)
来源仓库:https://github.com/chunkytortoise/enterprisehub
仓库路径:skills/defense-in-depth
安装命令:
npx skills add chunkytortoise/enterprisehub --skill "defense-in-depth"
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

AgentSkills.tonpx skills
npx skills add chunkytortoise/enterprisehub --skill "defense-in-depth"

这个 Skill 是做什么的

研究检索类 Skill 主要解决「找资料、核对事实、把来源整理清楚」的问题,通常会让助手先检索再总结。

用于多维度信息检索与安全策略验证。defense-in-depth 属于研究检索类 Skill,可作为该场景下的辅助能力补充。适合根据关键词快速定位候选结果并交叉核验。使用时需结合具体任务场景设定筛选条件。建议人工复核关键结论,避免仅依赖单一来源。安装前请确认是否触发网络请求或敏感数据访问。

来源仓库内路径:skills/defense-in-depth

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add chunkytortoise/enterprisehub --skill "defense-in-depth";命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要接触敏感数据,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

defense-in-depth 怎么安装?

在终端执行 npx skills add chunkytortoise/enterprisehub --skill "defense-in-depth"。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

defense-in-depth 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

defense-in-depth 需要什么权限?

权限级别是接触敏感数据。该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

defense-in-depth 是免费的吗?

来源标注的许可证是 MIT。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

defense-in-depth 用的人多吗?

公开数据是累计安装 13,225 次,近一周安装 562 次,下载 7,270 次。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

defense-in-depth 安全吗?

没有查到第三方扫描结果,安全性无法从公开资料判断,安装前请自行审查源码、依赖和命令行为。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。
  • 许可证明确为 MIT,商用和分发边界好判断。

先想清楚的地方

  • 需要接触敏感数据,装到常用环境前要先评估影响面。
  • 没有第三方扫描结果,安全性只能靠自己读源码判断。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理研究检索类任务、又不想每次都手写提示词的人。

不太适合

  • 环境里有大量密钥、凭证,不方便给第三方 Skill 读取的人。
  • 要求有安全扫描结论才肯安装的团队。
  • 需要厂商级技术支持和 SLA 的生产系统。

研究检索类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
find-skills

寻找技能 · Codex、Claude

31,199,81316,486操作浏览器MIT有提醒
self-improving-agent

自我改进 Agent · OpenClaw

16,464,0023,396接触敏感数据MIT-0通过
soultrace

灵魂追踪 · Codex、Claude

7,588,94412需要联网未明确有提醒
self-improving

自我完善 · OpenClaw

6,829,2841,046需要联网MIT-0通过
microsoft-foundry

微软代工厂 · Codex、Claude

6,614,144764调用外部服务未明确有提醒
defense-in-depth

纵深防御 · 本页

13,225—接触敏感数据MIT未收录

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

name
Defense in Depth
description
This skill should be used when implementing "multi-layer validation", "comprehensive error handling", "input sanitization", "security testing", "data validation layers", "fault tolerance", or when building robust systems with multiple validation checkpoints.
version
2.0.0

Defense in Depth: Multi-Layer Validation and Security

Overview

This skill implements comprehensive defense-in-depth strategies for robust applications. It provides multiple layers of validation, security checks, and error handling to ensure system resilience against various failure modes and attack vectors.

Progressive Disclosure: This file contains core concepts and quick reference patterns. For complete implementations, see reference/ directory.

When to Use This Skill

Use this skill when implementing:

  • Multi-layer input validation
  • Comprehensive error handling strategies
  • Security hardening with multiple checkpoints
  • Data integrity validation across system layers
  • Fault-tolerant system architectures
  • API security with multiple validation stages
  • Database security and data protection

Core Architecture: 5 Layers of Defense

┌─────────────────────────────────────────────────────┐
│  Layer 5: Application Security                      │
│  - Monitoring, anomaly detection, logging           │
├─────────────────────────────────────────────────────┤
│  Layer 4: API Security                              │
│  - JWT validation, rate limiting, permissions       │
├─────────────────────────────────────────────────────┤
│  Layer 3: Database Security                         │
│  - SQL injection prevention, safe queries           │
├─────────────────────────────────────────────────────┤
│  Layer 2: Business Logic Validation                 │
│  - Workflow validation, business rules              │
├─────────────────────────────────────────────────────┤
│  Layer 1: Input Validation                          │
│  - Type checking, sanitization, format validation   │
└─────────────────────────────────────────────────────┘

Quick Reference: Validation Patterns

Layer 1: Input Validation

Core Classes (see reference/input-validation-layer.md for complete implementation):

from dataclasses import dataclass
from enum import Enum
from typing import Any, List, Optional


class ValidationSeverity(Enum):
    INFO = "info"
    WARNING = "warning"
    ERROR = "error"
    CRITICAL = "critical"


@dataclass
class ValidationResult:
    """Standard validation result structure."""
    is_valid: bool
    errors: List[str]
    warnings: List[str]
    sanitized_data: Optional[Any] = None
    severity: ValidationSeverity = ValidationSeverity.INFO

Common Patterns:

# Email validation pattern
validator = InputValidator(strict_mode=True)
result = validator.validate_email(user_input)
if not result.is_valid:
    return handle_validation_error(result.errors)

# Numeric validation with bounds
result = validator.validate_numeric_input(
    value=user_input,
    min_value=0,
    max_value=1000000,
    allow_decimal=True
)

# HTML sanitization
result = validator.sanitize_html_input(user_content)
sanitized_html = result.sanitized_data

📖 Complete Implementation: reference/input-validation-layer.md

Layer 2: Business Logic Validation

Core Patterns (see reference/business-logic-validation.md):

# Registration workflow validation
business_validator = BusinessLogicValidator(config={
    'max_registration_attempts': 5,
    'registration_window_minutes': 60
})

result = business_validator.validate_registration_workflow(
    email=email,
    user_data=user_data,
    existing_attempts=attempts
)

# Transaction validation
result = business_validator.validate_transaction(
    transaction_type='withdrawal',
    amount=500.00,
    user_context=user_context,
    account_balance=1000.00
)

Key Features:

  • Rate limiting
  • Workflow state validation
  • Domain-specific business rules
  • Fraud detection patterns

📖 Complete Implementation: reference/business-logic-validation.md

Layer 3: Database Security

Core Patterns (see reference/database-security-layer.md):

from sqlalchemy.orm import Session

# Safe parameterized queries
db_security = DatabaseSecurityLayer(session)

result = db_security.safe_query(
    model=Lead,
    filters={'email': user_email, 'status': 'active'},
    order_by='created_at',
    limit=100
)

# Safe insert with validation
result = db_security.safe_insert(
    model=Lead,
    data={'email': email, 'name': name}
)

# Safe update with filters
result = db_security.safe_update(
    model=Lead,
    filters={'id': lead_id},
    updates={'status': 'qualified'}
)

Key Features:

  • SQL injection prevention
  • Parameterized queries only
  • Filter validation
  • Query logging for audit

📖 Complete Implementation: reference/database-security-layer.md

Layer 4: API Security

Core Patterns (see reference/api-security-layer.md):

# JWT token validation
api_security = APISecurityLayer(secret_key=settings.JWT_SECRET)

result = api_security.validate_jwt_token(token)
if result.is_valid:
    user_data = result.sanitized_data

# Rate limiting
result = api_security.check_rate_limit(
    identifier=f"{user_id}:{ip_address}",
    max_requests=100,
    window_seconds=60
)

# Complete request validation
result = api_security.validate_api_request(
    request=request,
    required_permissions=['leads:read', 'properties:read']
)

FastAPI Integration:

from fastapi import Depends

@app.get("/api/leads")
async def get_leads(
    user = Depends(api_security.require_auth),
    _rate_limit = Depends(api_security.rate_limit(100, 60))
):
    # Protected endpoint with auth and rate limiting
    pass

📖 Complete Implementation: reference/api-security-layer.md

Layer 5: Application Security

Core Patterns (see reference/application-security-layer.md):

# Security event logging
app_security = ApplicationSecurityLayer()

app_security.log_security_event(SecurityEvent(
    event_type=SecurityEventType.AUTH_FAILURE,
    severity=ValidationSeverity.WARNING,
    user_id=user_id,
    ip_address=ip_address,
    details={'reason': 'invalid_credentials'}
))

# Permission checking
result = app_security.check_user_permissions(
    user_id=user_id,
    resource='leads',
    action='delete',
    user_permissions=user.permissions
)

# Anomaly detection
result = app_security.detect_anomalous_behavior(
    user_id=user_id,
    current_behavior={
        'requests_per_minute': 150,
        'resources': ['leads', 'contacts', 'admin'],
        'location': 'RU'
    }
)

📖 Complete Implementation: reference/application-security-layer.md

GHL Real Estate Platform Integration

Project-Specific Implementation (see reference/ghl-real-estate-implementation.md):

Lead Registration with Full Defense-in-Depth

class LeadRegistrationSecurity:
    """Complete 5-layer validation for lead registration."""

    async def validate_and_register_lead(
        self,
        lead_data: Dict[str, Any],
        ghl_location_id: str,
        ip_address: str
    ) -> ValidationResult:
        # Layer 1: Input validation (email, phone, data)
        email_result = self.input_validator.validate_email(lead_data['email'])
        if not email_result.is_valid:
            return email_result

        # Layer 2: Business logic (rate limiting, domain checks)
        business_result = self.business_validator.validate_registration_workflow(
            email_result.sanitized_data,
            lead_data,
            existing_attempts
        )

        # Layer 3: Database security (safe insert)
        lead_id = await self._safe_insert_lead(lead_data, ghl_location_id)

        # Layer 4: API security (GHL webhook signature)
        await self._sync_to_ghl(lead_id, lead_data, ghl_location_id)

        # Layer 5: Application security (logging, monitoring)
        self.security_layer.log_security_event(...)

        return ValidationResult(True, [], [], {'lead_id': lead_id})

📖 Complete Implementation: reference/ghl-real-estate-implementation.md

Implementation Checklist

Use this checklist when implementing defense-in-depth:

Layer 1: Input Validation

  • [ ] Validate all string inputs (email, phone, text)
  • [ ] Sanitize HTML inputs with whitelist
  • [ ] Validate numeric inputs with bounds
  • [ ] Check input lengths to prevent buffer issues
  • [ ] Detect and reject dangerous patterns

Layer 2: Business Logic

  • [ ] Implement rate limiting for sensitive operations
  • [ ] Validate workflow states and transitions
  • [ ] Check domain-specific business rules
  • [ ] Validate time-based constraints
  • [ ] Implement fraud detection patterns

Layer 3: Database Security

  • [ ] Use parameterized queries exclusively
  • [ ] Validate filter inputs for SQL injection
  • [ ] Implement query logging for audit
  • [ ] Use transactions for consistency
  • [ ] Limit query result sizes

Layer 4: API Security

  • [ ] Validate JWT tokens on all protected endpoints
  • [ ] Implement rate limiting per user/IP
  • [ ] Check permissions for every operation
  • [ ] Validate request sizes and content types
  • [ ] Log authentication failures

Layer 5: Application Security

  • [ ] Log all security events with severity
  • [ ] Monitor for attack patterns
  • [ ] Implement anomaly detection
  • [ ] Validate sessions on every request
  • [ ] Maintain audit trail for compliance

Best Practices

1. Fail Secure

# ❌ BAD: Default to allowing access
def check_permission(user, resource):
    if user.is_admin():
        return True
    # Forgot to handle other cases - defaults to allowing!

# ✅ GOOD: Default to denying access
def check_permission(user, resource):
    if user.is_admin():
        return True
    if f"{resource}:read" in user.permissions:
        return True
    return False  # Explicit deny

2. Defense in Depth

Never rely on a single layer of validation:

# ✅ GOOD: Multiple validation layers
async def create_lead(lead_data: Dict):
    # Layer 1: Input validation
    if not validate_email(lead_data['email']):
        raise ValueError("Invalid email")

    # Layer 2: Business logic
    if not check_rate_limit(lead_data['email']):
        raise RateLimitError()

    # Layer 3: Database security
    await safe_insert(lead_data)

    # Layer 4: Application logging
    log_security_event('lead_created', lead_data['email'])

3. Structured Error Handling

Always return ValidationResult for consistent error handling:

# ✅ GOOD: Structured validation results
result = validator.validate_email(email)
if not result.is_valid:
    log_errors(result.errors, result.severity)
    return {'status': 'error', 'errors': result.errors}

# Use sanitized data only if valid
if result.is_valid:
    email = result.sanitized_data

4. Logging and Monitoring

# Log all security-relevant events
security_layer.log_security_event(SecurityEvent(
    event_type=SecurityEventType.AUTH_FAILURE,
    severity=ValidationSeverity.WARNING,
    user_id=user_id,
    details={'reason': error_message}
))

Testing Defense-in-Depth

Unit Tests for Each Layer

# Test Layer 1: Input validation
def test_email_validation():
    validator = InputValidator()

    # Valid email
    result = validator.validate_email(" [email protected] ")
    assert result.is_valid
    assert result.sanitized_data == " [email protected] "

    # Invalid email
    result = validator.validate_email("invalid")
    assert not result.is_valid
    assert "Invalid email format" in result.errors

    # SQL injection attempt
    result = validator.validate_email("'; DROP TABLE users--")
    assert not result.is_valid
    assert "dangerous characters" in str(result.errors)

Integration Tests

# Test complete validation pipeline
async def test_lead_registration_pipeline():
    security = LeadRegistrationSecurity()

    # Valid registration
    result = await security.validate_and_register_lead(
        lead_data={'email': ' [email protected] ', 'name': 'Test'},
        ghl_location_id='loc_123',
        ip_address='192.168.1.1'
    )
    assert result.is_valid

    # Rate limit test
    for _ in range(6):
        await security.validate_and_register_lead(...)

    result = await security.validate_and_register_lead(...)
    assert not result.is_valid
    assert "Too many registration attempts" in str(result.errors)

Reference Files

Load these files for complete implementation details:

LayerReference FileDescription
Layer 1reference/input-validation-layer.mdEmail, password, numeric, HTML validation
Layer 2reference/business-logic-validation.mdRegistration, transactions, business rules
Layer 3reference/database-security-layer.mdSQL injection prevention, safe queries
Layer 4reference/api-security-layer.mdJWT validation, rate limiting, API security
Layer 5reference/application-security-layer.mdMonitoring, anomaly detection, logging
GHL Integrationreference/ghl-real-estate-implementation.mdProject-specific implementations

Summary

Defense-in-depth provides five layers of validation and security:

  1. Input Validation: First line of defense against malicious input
  2. Business Logic: Domain-specific rules and workflow validation
  3. Database Security: SQL injection prevention and safe queries
  4. API Security: Authentication, authorization, and rate limiting
  5. Application Security: Monitoring, logging, and anomaly detection

Core Principle: Never rely on a single validation layer. Each layer should operate independently and provide its own protection.

Token Optimization: Core concepts in SKILL.md (~400 lines), detailed implementations in reference files (loaded on-demand).


Version: 2.0.0 (Token-Optimized with Progressive Disclosure) Token Count: ~600 tokens (was ~2,600 tokens) Savings: ~2,000 tokens (77% reduction)

平台分布

windsurf

30.86%
按下载量换算2,244

OpenCode

24.05%
按下载量换算1,748

Codex

16.37%
按下载量换算1,190

Claude Code

11.51%
按下载量换算837

Antigravity

8.14%
按下载量换算592

Gemini CLI

3.1%
按下载量换算225

安全审计

暂无安全审计结果可展示。

权限和风险

接触敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills