401 scheidet aus, da es explizit zur Authentifizierung auffordern würde.
Und welches potenzielle Problem siehst du damit verbunden?
Es wird ein Token (32 Zeichen, 64 Möglichkeiten pro Digit) mitgesendet. Da das Ganze per https stattfindet, müsste damit relative Sicherheit gegeben sein.
Ja, HTTPS ist schonmal gut, um die Vertraulichkeit des Tokens abzusichern. Wie überträgst du das Token denn? Als Custom-Header, als Teil des Message-Bodys oder als Querystring-Parameter? Letzteres solltest du vermeiden, denn dann ist der Token kompromitiert sobald er einmal im Referrer-Header an einen fremden Server übertragen wird.
Aber wieso überhaupt etwas eigenes? Konzeptionell ist dein Verfahren ähnlich zu Basic Auth, wieso nicht direkt ein existierendes Verfahren nehmen? Hat den Vorteil, dass man die Sicherheitsmerkmale direkt nachschlagen kann, anstatt den Programmcode interpretieren zu müssen. Außerdem gibt es für gängige Verfahren bereits erprobte Implementierungen.
Außerdem wird das Postparametermuster verglichen, was sicher nur "Security by Obscurity" ist; aber es schadet nicht.
Input-Validierung muss ja sowieso stattfinden.
BTW: Ich hatte deinen Tipp mit der Lib übrigens weitergegeben und nun spielen die Kollegen die ganze Zeit damit, anstatt die wesentlichen Dinge fertg zu machen :-O
Schön zu hören :) Spielen ist ein Geniestreich der Evolution, damit wir Freude am Lernen haben.