🔄 Development Workflow¶
Process Flow¶
1. Product Manager Phase¶
Input¶
- User feedback
- Market research
- Business goals
Output: User Story¶
## User Story
As a security engineer
I want to scan APIs for authentication vulnerabilities
So that I can identify weak authentication mechanisms
## Acceptance Criteria
- [ ] Detects missing authentication
- [ ] Identifies weak password policies
- [ ] Checks for secure token storage
- [ ] Validates session management
- [ ] Generates detailed report
## Priority: P0
## Estimated Effort: 3 days
2. Architect Phase¶
Input¶
- User story
- Technical constraints
- System architecture
Output: Technical Design¶
## High-Level Design (HLD)
### Component: AuthenticationScanner
**Responsibilities:**
- Scan authentication endpoints
- Test credential validation
- Check session security
- Identify weak configurations
**Interfaces:**
```python
class AuthenticationScanner(BaseScanner):
def scan(self, target: str) -> ScanResult:
"""Scan for authentication vulnerabilities."""
pass
def check_password_policy(self, endpoint: str) -> PolicyResult:
"""Validate password policy strength."""
pass
Dependencies: - BaseScanner (abstract base) - HTTPClient (network requests) - PolicyValidator (rule engine)
Low-Level Design (LLD)¶
Algorithm: 1. Discover authentication endpoints 2. Test for common vulnerabilities: - Missing authentication - Weak passwords - Insecure tokens 3. Validate results 4. Generate report
Data Structures:
@dataclass
class AuthVulnerability:
endpoint: str
vuln_type: str
severity: str
evidence: Dict[str, Any]
remediation: str
---
## 3. Implementation Phase
### Developer Checklist
- [ ] Create feature branch
- [ ] Write failing tests (TDD)
- [ ] Implement feature
- [ ] All tests pass
- [ ] Code review ready
- [ ] Documentation updated
### Example PR Description
```markdown
## PR: Add Authentication Scanner
### Changes
- Implemented `AuthenticationScanner` class
- Added password policy validation
- Created 15 test cases (100% coverage)
### Testing
- [x] Unit tests pass
- [x] Integration tests pass
- [x] Manual testing complete
### Performance
- Scans 10 endpoints in 2.5s
- Memory usage: <100MB
### Security
- No credentials logged
- All inputs sanitized
- Rate limiting implemented
4. QA Phase¶
Test Plan¶
## Test Cases: Authentication Scanner
### TC001: Detect Missing Authentication
**Given:** Unprotected admin endpoint
**When:** Scanner executes
**Then:** Reports HIGH severity vulnerability
### TC002: Weak Password Policy
**Given:** Endpoint accepts "password123"
**When:** Policy validation runs
**Then:** Identifies weak policy
### TC003: Session Fixation
**Given:** Session ID doesn't rotate
**When:** Authentication scanner runs
**Then:** Detects session fixation risk
5. Code Review Standards¶
Reviewer Checklist¶
- [ ] Code follows style guide (PEP 8)
- [ ] Type hints present
- [ ] Docstrings complete
- [ ] Tests comprehensive (>80% coverage)
- [ ] No security vulnerabilities
- [ ] Performance acceptable
- [ ] Documentation updated
Review Comments¶
# ✅ APPROVED with suggestions
# Great work! Consider these improvements:
# 1. Add timeout to prevent hanging
def scan(self, target: str, timeout: int = 30) -> ScanResult:
pass
# 2. Use specific exception
except ValueError as e: # Instead of generic Exception
logger.error(f"Invalid target: {e}")
6. Definition of Done¶
A feature is "done" when: - [ ] Code complete and reviewed - [ ] All tests pass (unit + integration) - [ ] Documentation updated - [ ] Performance benchmarked - [ ] Security reviewed - [ ] Deployed to staging - [ ] Product owner approved - [ ] Ready for production