SIWECOS / siwecos-business-layer

SIWECOS Main API and Business Layer Application
https://siwecos.de
0 stars 1 forks source link

Punycode URL #126

Closed Lednerb closed 5 years ago

Lednerb commented 5 years ago

Mutator Implementieren

  1. Beim Speichern URL mit Punycode speichern
  2. Beim Auslesen decodiert anzeigen

--> Mutator innerhalb von Domain.php, der den Hostname puny-codiert und -decodiert

Skeeve commented 5 years ago

Bitte beachten: Es gibt illegale punycode strings.

Beispiele aus Blacklisten:

Sollten wir solche Strings abweisen?

Skeeve commented 5 years ago

Weiterhin schau mal, ob Deine Implementierung korrekt ist. Alternativen sind hier gelistet. Die dort verlinkte Implementation ist jetzt unter https://idnaconv.net/index.html erreichbar.

Lednerb commented 5 years ago

Was meinst du mit illegalen punycode strings? Wo / Wie werden die als ungültig markiert?


Weiterhin bin ich der Meinung, die BLA benötigt keine Punycode Implementierung, da die Scanner diese übernehmen müssen (Scanner müssen auch außerhalb unserer Infrastruktur funktionieren).

In der BLA können wir daher die Domains direkt per UTF-8 speichern und verwenden.

Lednerb commented 5 years ago

Ungültige Domains müssen wir nicht abweisen, diese lassen sich einfach nicht verifizieren und fliegen ggf. nach X Zeit aus dem System.

Skeeve commented 5 years ago

Ungültig sind z.B. solche punycode strings bei denen die Dekodiering einen String ergibt der mit einem Kombinationszeichen beginnt, wenn ich das richtig verstanden habe. Also z.B. ein Akzent, der nur nach einem Buchstaben kommen darf, wird als erstes eingebaut.

Wenn Du aber keinen punycode support (mehr) einbaust, dann haben wir das Problem(?), dass eine Domain doppelt registriert werden kann. Ich dachte, dafür hättest Du das implementiert.

Lednerb commented 5 years ago

Domain kann nicht doppelt registriert werden, wir hatten da ein anderes Problem welches bereits behoben ist.

Ein Nutzer könnte zwar die Domain einmal mit Sonderzeichen und einmal als Punycode registrieren, müsste diese aber jeweils verifizieren. Ich schließe hier dann, Die Idee zur Punycode-Implementierung kam daher, dass einige Scanner damit Probleme hatten. Die Scanner müssen allerdings auch unabhängig von der BLA funktionieren.

Neuere Versionen von bspw. Guzzle / curl (für die Laravel-Projekte) können mit Sonderzeichen umgehen und haben intern bereits eine Implementierung vorhanden. Wahrscheinlich können wir die Funktionalität aus den Scannern später wieder ausbauen, um auch solche Probleme zu vermeiden, die du angesprochen hast.

Skeeve commented 5 years ago

Natürlich müßte er die 2 Mal verifizieren. Dasselbe gilt ja für die Registrierung mit http und https.