44 lines
839 B
Markdown
44 lines
839 B
Markdown
# PoW Captcha Server
|
|
|
|
PHP-basierter Proof-of-Work Captcha Server für dgray.io.
|
|
|
|
## Setup
|
|
|
|
1. Subdomain `pow.dgray.io` auf den Server zeigen
|
|
2. Dateien in das Web-Root kopieren
|
|
3. Secret setzen:
|
|
```bash
|
|
# In .env oder Apache/Nginx config:
|
|
SetEnv POW_SECRET $(openssl rand -hex 32)
|
|
```
|
|
Oder direkt in `config.php` den Wert von `POW_SECRET` ändern.
|
|
|
|
4. Testen:
|
|
```bash
|
|
curl https://pow.dgray.io/challenge
|
|
```
|
|
|
|
## Endpoints
|
|
|
|
### GET /challenge
|
|
Gibt eine signierte Challenge zurück.
|
|
|
|
### POST /verify
|
|
Prüft die Lösung. Body (JSON):
|
|
```json
|
|
{
|
|
"challenge": "...",
|
|
"difficulty": 4,
|
|
"nonce": 12345,
|
|
"signature": "...",
|
|
"timestamp": 1700000000000
|
|
}
|
|
```
|
|
|
|
## Sicherheit
|
|
|
|
- HMAC-SHA256 signierte Challenges (nicht fälschbar)
|
|
- TTL: 2 Minuten
|
|
- CORS: nur `https://dgray.io`
|
|
- `hash_equals()` gegen Timing-Attacks
|