Sichere REST-APIs mit PHP ohne Framework

Eine kleine PHP-JSON-API mit PDO, zufälligen Tokens und Berechtigungsprüfung je Objekt.

Sichere REST-APIs mit PHP ohne Framework

Eine kleine PHP-JSON-API mit PDO, zufälligen Tokens und Berechtigungsprüfung je Objekt.

Umfang

Ein öffentlicher Front-Controller verarbeitet GET, POST, PATCH und DELETE für /api/items und /api/items/{id}. Antworten sind JSON; unbekannte Methoden erhalten 405 mit Allow. Weitere PHP-Dateien dürfen nicht direkt über den Webserver erreichbar sein.

Authentifizierung

Zufällige Tokens mit random_bytes(32) erzeugen, nur einmal anzeigen und ausschließlich den SHA-256-Hash mit Benutzer, Ablauf und Widerruf speichern. Authorization: Bearer nur über HTTPS annehmen, den Hash parametrisiert abfragen und bei fehlenden oder ungültigen Daten 401 senden. Zugriffe begrenzen und Tokens nicht protokollieren.

Berechtigung und Eingaben

Jede Objektabfrage muss die ID des angemeldeten Nutzers enthalten, etwa WHERE id = :id AND user_id = :uid. Typen und Längen prüfen, beschreibbare Felder ausdrücklich wählen und PDO-Prepared-Statements nutzen. Ungültiges JSON (400), ungültige Felder (422), verbotene Aktionen (403) und fehlende Objekte (404) unterscheiden; interne Fehler verbergen.

Betrieb

Geheimnisse außerhalb des öffentlichen Verzeichnisses, minimale Datenbankrechte, Größenlimits, HTTPS und geschützte Logs vorsehen. CORS ersetzt keine Autorisierung. Zugriffe zwischen zwei Konten, abgelaufene Tokens und fehlerhafte Anfragen testen.

Quellen

https://www.php.net/manual/en/book.pdo.php ; https://www.php.net/manual/en/function.random-bytes.php ; https://cheatsheetseries.owasp.org/cheatsheets/REST_Security_Cheat_Sheet.html

Teilen

Was ist Ihre Reaktion?

Gefällt mir Gefällt mir 0
Gefällt mir nicht Gefällt mir nicht 0
Liebe Liebe 0
Lustig Lustig 0
Wütend Wütend 0
Traurig Traurig 0
Wow Wow 0