スキル一覧に戻る
KiranEswaran

security-testing

by KiranEswaran

8🍴 1📅 2025年12月29日
GitHubで見るManusで実行

SKILL.md


name: security-testing description: Security best practices (OWASP Top 10) and testing strategies for software development. Covers secure coding, vulnerability prevention, testing pyramid, API design, and observability patterns. Use when reviewing code for security, writing tests, designing APIs, or when asking about security vulnerabilities, testing strategies, logging, or monitoring.

Security & Testing

Security Principles

  1. Defense in Depth: Multiple layers of security
  2. Least Privilege: Minimum necessary permissions
  3. Fail Secure: Default to deny
  4. Zero Trust: Never trust, always verify

OWASP Top 10 Quick Reference

#VulnerabilityPrevention
1Broken Access ControlRBAC, deny by default, audit logs
2Cryptographic FailuresTLS, strong algorithms, key management
3InjectionParameterized queries, input validation
4Insecure DesignThreat modeling, secure patterns
5Security MisconfigurationHardened defaults, minimal services
6Vulnerable ComponentsDependency scanning, updates
7Auth/Identity FailuresMFA, session management
8Software/Data IntegritySigned artifacts, CI/CD security
9Logging/Monitoring FailuresCentralized logs, alerting
10SSRFInput validation, allowlists

Security Checklist

  • No hardcoded secrets
  • Secrets not logged
  • Input validation on all boundaries
  • Parameterized queries
  • Dependencies scanned for CVEs
  • Authentication & authorization implemented
  • HTTPS enforced
  • Security headers configured
  • Rate limiting in place
  • Audit logging enabled

Testing Pyramid

        /\
       /  \     E2E Tests (few)
      /----\
     /      \   Integration Tests
    /--------\
   /          \ Unit Tests (many)
  /------------\
TypePurposeSpeedCoverage
UnitTest isolated logicFastHigh
IntegrationTest component interactionMediumMedium
E2ETest full user flowsSlowLow

Testing Best Practices

# Arrange-Act-Assert pattern
def test_user_creation():
    # Arrange
    user_data = {"name": "Alice", "email": "alice@acme.com"}
    
    # Act
    user = create_user(user_data)
    
    # Assert
    assert user.name == "Alice"
    assert user.email == "alice@acme.com"

# Test edge cases
def test_empty_input():
    with pytest.raises(ValueError):
        create_user({})

def test_invalid_email():
    with pytest.raises(ValidationError):
        create_user({"name": "Bob", "email": "invalid"})

API Security

# Essential security headers
Content-Security-Policy: default-src 'self'
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
Strict-Transport-Security: max-age=31536000; includeSubDomains
# Rate limiting
from flask_limiter import Limiter
limiter = Limiter(key_func=get_remote_address)

@app.route("/api/login")
@limiter.limit("5 per minute")
def login():
    pass

Observability

Three Pillars

PillarPurposeTools
LogsEvent recordsELK, CloudWatch
MetricsNumerical measurementsPrometheus, DataDog
TracesRequest flowsJaeger, X-Ray

Structured Logging

logger.info("User action", extra={
    "user_id": user.id,
    "action": "login",
    "ip": request.remote_addr,
    "timestamp": datetime.utcnow().isoformat()
})

Detailed References

スコア

総合スコア

55/100

リポジトリの品質指標に基づく評価

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

0/5
タグ

1つ以上のタグが設定されている

0/5

レビュー

💬

レビュー機能は近日公開予定です