Skip to content

Commit 3a459bc

Browse files
committed
docs: Add indieweb2-bastion relationship to IndieWeb security planning
Added references to indieweb2-bastion in both HANDOVER and ROADMAP: - Infrastructure layer (bastion, provenance) complements application layer - Provenance graphs for Webmention verification chains - Bastion patterns for rate limiting endpoints - Audit logging as first-class feature Also added SSRF prevention to IndieWeb roadmap (Phase 5.4). Architecture: indieweb2-bastion → Infrastructure (network, DNS, audit) php-aegis → Application (Micropub, IndieAuth, Webmention) sanctify-php → Analysis (static security scanning)
1 parent 43a917c commit 3a459bc

2 files changed

Lines changed: 71 additions & 0 deletions

File tree

HANDOVER_SANCTIFY.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -683,6 +683,49 @@ From this integration:
683683

684684
---
685685

686+
## Related Project: indieweb2-bastion
687+
688+
The [indieweb2-bastion](https://github.com/hyperpolymath/indieweb2-bastion) repository provides infrastructure-layer security that complements php-aegis and sanctify-php at the application layer.
689+
690+
### What indieweb2-bastion Does
691+
692+
| Feature | Purpose |
693+
|---------|---------|
694+
| Hardened bastion ingress | Secure network entry points |
695+
| Oblivious DNS (IPv6) | Privacy-preserving DNS resolution |
696+
| GraphQL DNS APIs | Programmable domain resolution |
697+
| SurrealDB provenance graphs | Audit trails & data lineage |
698+
699+
### Relationship to IndieWeb Security
700+
701+
While **not** implementing IndieWeb protocols (Micropub, IndieAuth, Webmention), indieweb2-bastion provides foundational security patterns applicable to IndieWeb infrastructure:
702+
703+
| indieweb2-bastion | IndieWeb Application |
704+
|-------------------|---------------------|
705+
| Provenance graphs | Track Webmention verification chains |
706+
| Audit capabilities | Log IndieAuth token usage |
707+
| Bastion pattern | Rate limit Webmention endpoints |
708+
| Policy controls (Nickel) | Define allowed Micropub content |
709+
710+
### Recommended Stack Architecture
711+
712+
```
713+
┌─────────────────────────────────────────────────────────┐
714+
│ Full IndieWeb Stack │
715+
├─────────────────────────────────────────────────────────┤
716+
│ indieweb2-bastion │ Infrastructure layer │
717+
│ (network, DNS, audit)│ (bastion, provenance) │
718+
├───────────────────────┼─────────────────────────────────┤
719+
│ php-aegis │ Application layer │
720+
│ (validation, escaping)│ (Micropub, IndieAuth, Webmention)│
721+
├───────────────────────┼─────────────────────────────────┤
722+
│ sanctify-php │ Analysis layer │
723+
│ (static analysis) │ (find vulnerabilities) │
724+
└─────────────────────────────────────────────────────────┘
725+
```
726+
727+
---
728+
686729
## Final Summary: Integration Value Matrix
687730

688731
| Tool | WordPress Value | Non-WP Value | Unique Capability |

ROADMAP_PRIORITY.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,27 @@ Sanitizer::jsonEncode(mixed $input): string // Safe JSON with flags
148148

149149
**Goal**: First-class support for IndieWeb/semantic web patterns.
150150

151+
### Related Project: indieweb2-bastion
152+
153+
The [indieweb2-bastion](https://github.com/hyperpolymath/indieweb2-bastion) repository provides infrastructure-layer security (bastion ingress, oblivious DNS, provenance graphs) that complements php-aegis at the application layer.
154+
155+
**Architectural relationship**:
156+
```
157+
┌────────────────────────────────────────────────┐
158+
│ indieweb2-bastion │ Infrastructure layer │
159+
│ (network, audit) │ Rate limiting, logging │
160+
├─────────────────────┼──────────────────────────┤
161+
│ php-aegis │ Application layer │
162+
│ (this module) │ Micropub, IndieAuth, │
163+
│ │ Webmention validation │
164+
└────────────────────────────────────────────────┘
165+
```
166+
167+
**Lessons from indieweb2-bastion**:
168+
- Use provenance-style tracking for Webmention verification chains
169+
- Apply bastion patterns for rate limiting endpoints
170+
- Consider audit logging as a first-class feature
171+
151172
### 5.1 Micropub Content Sanitizer
152173
```php
153174
Micropub::sanitizeContent(string $html, array $allowedTags = []): string
@@ -167,6 +188,13 @@ Webmention::validateSource(string $url): bool // Not internal IP
167188
Webmention::validateTarget(string $url, string $domain): bool
168189
```
169190

191+
### 5.4 SSRF Prevention
192+
```php
193+
// Prevent Webmention SSRF attacks
194+
Webmention::isInternalIp(string $ip): bool
195+
Webmention::resolveAndValidate(string $url): ValidationResult
196+
```
197+
170198
---
171199

172200
## Phase 6: Rate Limiting (v0.6.0)

0 commit comments

Comments
 (0)