API
Programmatischer Zugriff auf den Protector. Praktisch für Build-Pipelines oder CI/CD.
Endpoint
POST https://online-php-protector.de/api/protect.php
Content-Type: application/json
X-API-Token: <dein-token> // für programmatischen Zugriff
Authentifizierung
Der Endpoint akzeptiert zwei Aufruf-Arten:
- Browser-Aufruf: Anfragen vom eigenen Web-Interface werden über den
Origin- bzw.Referer-Header validiert. Kein Token nötig. - Programmatischer Aufruf: cURL, Build-Pipelines, eigene Skripte →
X-API-Token-Header mitsenden. Token werden auf Anfrage per Mail vergeben (siehe Impressum).
Request Body
{
"code": "<?php echo 'hello'; ?>",
"level": "advanced"
}
Parameter
| Feld | Typ | Werte |
|---|---|---|
code |
string | PHP-Quellcode, max. 512 KB |
level |
string | basic | medium | advanced | pro |
Antwort (Erfolg)
{
"ok": true,
"result": "<?php $_0xabc...;eval(...);",
"stats": {
"in_bytes": 487,
"out_bytes": 2114,
"ratio": 434
}
}
Antwort (Fehler)
{
"ok": false,
"errors": ["Anfrage zu groß (max. 512 KB)."]
}
HTTP-Statuscodes
200 | Erfolgreich verschleiert |
400 | Ungültiger Code oder Stufe |
401 | Ungültiger API-Token |
403 | Origin nicht erlaubt (Browser ohne korrekten Referer) |
405 | Nur POST erlaubt |
413 | Anfrage zu groß |
429 | Rate-Limit überschritten (siehe Retry-After) |
503 | Server überlastet |
Beispiel: cURL (mit Token)
curl -X POST https://online-php-protector.de/api/protect.php \ -H "Content-Type: application/json" \ -H "X-API-Token: dein_token_hier" \ -d '{"code":"<?php echo 1;","level":"medium"}'
Beispiel: PHP-Client
<?php $ch = curl_init('https://online-php-protector.de/api/protect.php'); curl_setopt_array($ch, [ CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ 'Content-Type: application/json', 'X-API-Token: ' . getenv('OPP_TOKEN'), ], CURLOPT_POSTFIELDS => json_encode([ 'code' => file_get_contents('src/Module.php'), 'level' => 'advanced', ]), ]); $response = json_decode(curl_exec($ch), true); file_put_contents('dist/Module.php', $response['result']);
Limits
- 30 Requests pro Minute pro IP-Adresse
- Globaler Server-Cooldown bei 300 Requests/Minute (Schutz vor Bot-Netzen)
- Maximale Anfragegröße: 512 KB
- Bei Überschreitung des IP-Limits: HTTP 429 mit
Retry-After-Header - Bei globalem Limit: HTTP 503
Security-Hinweis
Eingegebener Code wird ausschließlich im Arbeitsspeicher verarbeitet und nicht gespeichert. API-Anfragen erfordern HTTPS — über HTTP eingehende Anfragen werden serverseitig umgeleitet. Logging beschränkt sich auf Standard-Server-Logs (IP, Zeitpunkt, Statuscode) — kein Code-Inhalt wird gespeichert.