
Ich bin es, der ein Skript schreibt, um Parameter für eine POST-Anfrage an gov.tr zu durchlaufen, das vor der Grenze zu Kroatien sitzt.
Wie alles begann
Meine Frau und ich bereisen die Welt und arbeiten fern. Kürzlich von der Türkei nach Kroatien gezogen (der optimalste Anlaufpunkt in Europa). Um in Kroatien nicht unter Quarantäne zu gehen, benötigen Sie eine Bescheinigung über die Negativanalyse für Covid, die spätestens 48 Stunden vor der Einreise ausgestellt wurde.
Wir fanden heraus, dass es relativ rentabel ist (2500 Rubel) und schnell (alle Ergebnisse kommen innerhalb von 5 Stunden) machen sie einen Test am Istanbuler Flughafen, von dem wir gerade gestartet sind.
Wir kamen 7 Stunden vor Abflug am Flughafen an und fanden einen Testpunkt. Sie machen alles chaotisch: Sie kommen, geben Ihren Reisepass, bezahlen, erhalten 2 Barcode-Aufkleber, gehen zum mobilen Labor, wo sie Ihnen einen dieser Aufkleber abnehmen, um Ihre Analyse zu identifizieren. Nachdem Sie ausgegangen sind, sagen sie Ihnen: Gehen Sie zu dieser Site: enabiz.gov.tr/PcrTestSonuc , geben Sie Ihren Barcode und die letzten 4 Ziffern Ihres Passes ein, nach einer Weile wird es ein Ergebnis geben.
Wenn Sie die Daten jedoch direkt nach der Analyse eingeben, wird auf der Seite ein Fehler angezeigt.
Selbst dann schlichen sich Gedanken an „exzellentes“ UX in meinen Kopf, in dem es bei einem Fehler des Betreibers, der die Passdaten einhämmerte, keine Möglichkeit gibt, sein Ergebnis herauszufinden.
Vor der Abfahrt
Die Abfahrtszeit kommt, ich fahre meine Daten ein und sehe, dass es bereits Dokumente für sie gibt, obwohl es noch kein Testergebnis gibt.
Es ist sogar zu sehen, dass die Tests vor 1,5 Stunden im Labor eingetroffen sind. Die Dateneingabe meiner Frau gibt jedoch immer noch den Fehler aus, dass kein Datensatz gefunden wurde. Und am wichtigsten ist, dass Sie nicht einfach fragen können, was los ist, weil Wir haben den Test in der Gegend vor der Passkontrolle bestanden.
Beim Einsteigen in den Flug forderten sie Testergebnisse von uns, aber zum Glück konnten wir den Flughafenvertreter davon überzeugen, dass sie bald erscheinen würden (ihnen Barcodes zeigten), und als letztes Mittel würden wir in Quarantäne gehen.
Sobald ich in das Flugzeug stieg, erschien laut meinem Code die Information, dass mein Test negativ war.
Bei Ankunft
Und hier beginnt der Spaß! Sobald wir ankamen und eine Verbindung zum lokalen WLAN herstellten, stellte sich heraus, dass der Datensatz meiner Frau immer noch nicht in der Datenbank enthalten war. Und an der Grenze selbst gingen sie sehr vorsichtig mit den Dokumenten um: Der Grenzschutz machte einen Test auf Coronavirus und brachte sie in einen separaten Raum, um die Realität zu überprüfen. Wir beschlossen, unsere wahre Geschichte so zu erzählen, wie sie ist, und herauszufinden, welche Optionen wir haben.
Während wir in der Warteschlange waren, entschied ich mich, nach korrekten (meinen) und falschen Daten zu suchen, wie die Validierungsseite reagiert.
Es stellte sich heraus, dass sie eine Post-Anfrage an www.enabiz.gov.tr/PcrTestSonuc/GetPcrRaporVerifyWithKimlik mit den folgenden Parametern
schickte : barkodNo = XX
kimlikNo = YY
kimlikTipi = 2
wobei barkodNo die Barcode-Nummer ist,kimlikNo - Passnummer, kimlikTipi - fester Parameter gleich 2 (wenn Sie nur die ersten beiden Felder ausfüllen). Es waren keine Token sichtbar. Die Anfrage ergab 1 für die richtigen Parameter (meine Daten) und 0 für die falschen.
Vom Postboten habe ich versucht, über 40 Kombinationen zu wiederholen (plötzlich gab es einen Fehler von einem Zeichen), aber es kam nichts heraus.
In diesem Moment näherten wir uns dem Grenzschutzbeamten, er hörte sich unsere Geschichte an und bot Quarantäne an. Aber wir wollten offensichtlich 14 Tage lang nicht in der Wohnung sitzen, also baten wir darum, ein wenig in der Transitzone zu warten, um zu versuchen, das Problem in ein paar Stunden zu lösen. Der Grenzschutz betrat unsere Position, ging, um herauszufinden, ob wir in der weißen Zone sitzen könnten, und sagte mit Zustimmung des Leiters: „Okay, nur ein paar Stunden“.
Ich suchte nach der Telefonnummer derjenigen, die den Corona-Test durchführten, und entschied mich gleichzeitig, eine verrückte Hypothese zu testen: Wenn dieses System eine so schreckliche Benutzeroberfläche hat, sollte das Sicherheitssystem nicht gut sein, obwohl die gov.tr.
Infolgedessen schrieb ich während eines Anrufs ein kleines Skript, das alle Nummern von 0000 bis 9999 im Feld kimlikNo durchlief. barkodNein, den wir auf dem Aufkleber hatten, also konnte es nicht falsch sein.
Stellen Sie sich meine Überraschung vor, als ich auch nach 500 fortlaufenden Anfragen nicht gebannt wurde und das Skript weiterhin mit einer Geschwindigkeit von 20 Anfragen pro Sekunde vom WLAN des Flughafens ausgeführt wurde.
Die Anrufe waren nicht sehr erfolgreich: Ich wurde von einer Abteilung in eine andere umgeleitet. Aber sehr bald produzierte das Skript den begehrten Wert 6505, der überhaupt nicht den echten 4 Ziffern des Passes entsprach.
Nach dem Hochladen des Dokuments stellte sich heraus, dass der Pass meiner Frau eindeutig nicht vorhanden war (solche Nummern existieren nicht einmal für russische Ausländer), aber alle anderen Daten (einschließlich Vor- und Nachname sowie Geburtsdatum) sind korrekt.
Das Interessanteste ist, dass Barcodes auch nicht zufällig sind, sondern fast eins nach dem anderen gehen. So konnte ich theoretisch Kontakte finden, die die Passnummer meiner Frau erhielten, und im Allgemeinen die privaten Daten anderer Personen reibungslos auspumpen.
Aber es war 9 Uhr morgens und eine Nacht ohne Schlaf, ich war zu spät zu einem Online-Meeting und war froh, dass sie uns ohne Quarantäne durchgelassen haben, also habe ich gerade meine Reise durch Europa begonnen.