Was sind gültige Zeichen für eine DNS-Zone-Datei und wie kann ich Benutzereingaben sanieren?

StackOverflow https://stackoverflow.com/questions/509640

  •  21-08-2019
  •  | 
  •  

Frage

Ich arbeite an einer Schnittstelle unserer Kunden zu ermöglichen, ihre DNS auf ihrem eigenen zu aktualisieren.

Ich habe 2 Fragen:

  1. Was gilt eine gültige Host- und Zielsätze ausmacht? (A, CNAME, MX, TXT) das heißt, wenn der Benutzer gibt ........ für den Host und Ziel Der DNS-Server so nicht.
  2. Sie haben ein regex ich verwenden kann, um Benutzereingaben zu sanieren?

BTW ist es BIND9 DNS und C # Web-App.

Danke,

Kyle

War es hilfreich?

Lösung

Domain Name Labels können technisch jedes Oktett Wert enthalten, aber in der Regel sie nur enthalten alphanumerics und den Bindestrich und Unterstrichen.

Das kommt von Empfehlungen in Abschnitt 2.3.1 von RFC 1035 :

  

Die Etiketten müssen die Regeln für   ARPANET Host-Namen. Sie müssen beginnen   mit einem Brief, mit einem Brief beenden oder   Ziffer und haben als Innen Zeichen   nur Buchstaben, Ziffern und Bindestrich.   Darüber hinaus gibt es einige Einschränkungen auf   die Länge. Die Etiketten müssen 63 sein   Zeichen oder weniger.

Das Unterstreichungszeichen ist ein neuere hinaus, typischerweise in dem Etikettteil von SRV Aufzeichnungen verwendet.

Sie können auch den „.“ Charakter erlauben, wenn Benutzer geht zu lassen, ihre eigene Sub-Domains erstellen.

Die Werte , die möglich sind:

  • A Rekord - muss eine gepunktete Quad IP-Adresse
  • CNAME Rekord - müssen einige andere rechtliche Label
  • sein
  • MX Rekord - 16-Bit-Integer-Prioritätsfeld und ein Rechtshostname. NB: einige Leute in den Etiketten, die sich nur auf einen CNAME Datensatz verweisen. Dies ist verpönt.
  • TXT Rekord - alles, was Sie mögen

Beachten Sie, dass in jedem Fall, wenn Sie eines des Zeichens nicht erlauben, in dem normalen Satz müßten sie entkommen sein, wenn sie in einer BIND-Format Zonendatei gespeichert werden.

Andere Tipps

Vergessen Sie nicht, AAAA, die IPv6-Adressen (denken Sie daran, nur noch zwei Jahre, bevor wir laufen von IPv4-Adressen ...).

Für das Recht Namen, lesen Sie RFC 1123, Abschnitt 2.1. Domäne Namen sein können alles , Host Namen haben eine viel strengere Syntax (siehe RFC 1123).

Die Antwort verwendet, um einfach zu sein, aber nicht mehr.

Sie können fast jedes Unicode-Zeichen verwenden, aber sie sollten durch eine Normalisierung gehen, und Codierungsprozess.

Siehe RFC 3490 (IDNA), RFC 3454 (Stringprep), RFC 3491 (Nameprep), RFC 3492 (Punycode)

Oder gehen Sie mit Wikipedia für das große Bild ( http://en.wikipedia.org/wiki/ Internationalized_domain_name ).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top