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:

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

200Erfolgreich verschleiert
400Ungültiger Code oder Stufe
401Ungültiger API-Token
403Origin nicht erlaubt (Browser ohne korrekten Referer)
405Nur POST erlaubt
413Anfrage zu groß
429Rate-Limit überschritten (siehe Retry-After)
503Server ü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

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.