IDN Punycode - IDNA 2003 und 2008

  • Hi zusammen,

    nach nun doch einigen Jahren möchte ich mein Script mal automatisieren und die Umwandlung von Unicode nach Punycode einbauen. PHP hat eine solche Funktion, ich weiß, aber erst seit Version 5.3 - ich habe 5.2.

    Also habe ich nun die bisherige PHP-Klasse genommen. Funktioniert soweit auch ganz gut, nur Eines macht mit nun sorgen.

    Woher weiß ich denn, ob eine Domain, die da eingetragen wird, nun eine IDNA2003 oder eine IDNA2008 ist?

    Beispiel:
    müller.de
    Das Ergebnis ist bei beiden Standards identisch: xn--mller-kva.de

    Anders aber bei Exoten wie βόλοσ.com
    IDNA2003: xn--nxasmq6b.com
    IDNA2008: xn--nxasmm1c.com

    Ruft man im Browser die erste auf, dann kommt eine Parking-Seite. Ruft man die zweite Version auf, dann kommt "Server nicht gefunden". Die sind also grundlegend unterschiedlich.

    Selbiges bei z.B. faß.de
    IDNA2003: fass.de
    IDNA2008: xn--fa-hia.de

    Hm... Wie bekomme ich nun heraus, welche Version ich zum Codieren benötige? Oder nutzt man immer 2003 oder immer 2008 ? *hilfe*

    Wenn ein Mensch nicht um dich kämpft, hat er nur gewartet, dass du gehst. ;(

  • das ist in der tat eine gute frage..
    php 5.3 habe ich aus kompatibilitätsgründen noch nicht online, aber die halt letzte 5.2.x
    weiss net wie ich dir helfen kann :(
    ich denke bzw vermute da immer IDNA2008 gültigkeit besitzt, ist aber ne vermutung.. naja

    wenn etwas möglich erscheint mach ich das, wenn das nicht klappt gehts ans unmögliche und ansonsten das undenkbare.

    - nun stolz rauchfrei - Ich denke also Bing ich!

    Support 24h Bereitschaft 0173 6107465 - NUR Für Kunden von SEO NW!

  • Alex
    Die Vermutung hatte ich auch, aber zumindest die Denic scheint mit IDNA2003 zu arbeiten. Jedenfalls bekomme ich bei deren ihrem Tool die IDNA2003-Variante als Ergebnis. Aber dort steht auch, dass die den neusten Standard nutzen und das ist nun mal IDNA2008 eben wegen den Sonderzeichen und der Verwechslungsgefahr.

    Und genau hier unterschiedet es sich auch wieder. Die Denic löst "faß" mit IDNA2008 auf, "βόλοσ" aber mit IDNA2003 ??

    Das hier gibt mir zu denken...

    Zitat

    1. Additions. Some IDNs are invalid in IDNA2003, but valid in IDNA2008.
    2. Subtractions. Some IDNs are valid in IDNA2003, but invalid in IDNA2008.
    3. Deviations. Some IDNs are valid in both, but resolve to different destinations.

    Das ist genau das, dass verschiedene Hosts angesprochen werden, je nachdem wie man Codiert.

    und das noch mehr:

    Zitat

    1. Alice's browser supports IDNA2003. Under those rules, *** Link veraltet *** is mapped to *** Link veraltet ***, which leads to a site with the IP address 01.23.45.67.

    2. She visits her friend Bob, and checks her bank statement on his browser. His browser supports IDNA2008. Under those rules, *** Link veraltet *** is also valid, but converts to a different Punycode domain name in *** Link veraltet ***. This can lead to a different site with the IP address 101.123.145.167, a spoof site.

    Alice ends up at the phishing site, supplies her bank password, and her money is stolen. While the .DE registar (DENIC) might have a policy about bundling all of the variants of ß together (so that they all have the same owner) it is not required of registries. It is unlikely that all registries will have and enforce such a bundling policy in all such cases.

    Kommt also auch noch auf den Browser an, was der umsetzt.

    So, eben mal die PEAR-Klasse angesehen. Das ist die selbe wie ich auch habe...

    Und bei PHP Version 5.3 wird mit IDNA2003 gearbeitet. Ab der Version 5.4 gibt es auch dort eine optionale Festlegung von 2003 oder 2008.

    Wenn ein Mensch nicht um dich kämpft, hat er nur gewartet, dass du gehst. ;(

  • Nee, nicht dass ich wüsste. So wie es scheint entscheidet zumindest die Denic (deren Tool) nach Bedarf. Also einmal 2003, einmal 2008. Nur alle verfügbaren Klassen, Pakete und Module müssen per Hand auf einen Standard gebracht werden....

    Es liegt ja auch nicht an den Registraren / Hostern, was die Registrieren, sondern daran, was ein Tool oder ein Browser auflöst / daraus macht.

    Herrje, das ist ein Mist. Ich weiß, warum ich diese Domänen hasse :wall:

    Wenn ein Mensch nicht um dich kämpft, hat er nur gewartet, dass du gehst. ;(

  • Achso läuft dat: Ich dachte immer, das die Registrare das selbst entscheiden können.
    Weil grade hier in Litauen gibts ja die abstrusesten Sonderzeichen und der Admin von der *** Link veraltet *** wollte sich bisher nicht äußern. (Wahrscheinlich mangels Wissen)

    Wer zuerst "Datenschutz" sagt, hat verloren.

  • Die Registrare haben nur die Vorgaben, was sie registrieren dürfen. Die registrieren dann aber die Version mit den Sonderzeichen (die wird ja bestellt) und eben auch gleichzeitig die codierten Versionen mit dazu (zumindest die DENIC). Alles andere, die Umsetzungen etc, das machen die Browser oder eben auch nicht.

    Das ist wie oben das Beispiel mit der sparkasse-gießen.de
    Genau der Name wird bestellt. Mit registriert wird automatisch die IDNA2003 als sparkasse-giessen.de und die IDNA2008 als xn--sparkasse-gieen-2ib.de.

    Und genau hier kommt das Problem, denn das machen nicht alle. Und je nach Browser landet man dann wo anders, auf verschiedenen Servern, jenachdem nach welchem Standard der Browser das "ß" umsetzt.

    Wenn ein Mensch nicht um dich kämpft, hat er nur gewartet, dass du gehst. ;(

  • D.h. ich könnte als böser Pisher "xn--sparkasse-gieen-2ib.de" mieten und die Bank-Hoschis, die ganz treu und brav "sparkasse-giessen.de" mieten, sind erstmal aussen vor?

    Wer zuerst "Datenschutz" sagt, hat verloren.

  • Abgesehen von der Denic ja. Die Denic registriert ja angeblich alle Versionen, daher ist das Beispiel mit der .de irgendwie auch doof. Bevor ich da noch mehr schreibe und eventuell was falsches. Das hier war meine Quelle:
    *** Link veraltet ***

    Wenn ein Mensch nicht um dich kämpft, hat er nur gewartet, dass du gehst. ;(