Wie erlaube ich in IIS den nachgestellten Punkt in Host-Headern

8

Ich verwende eine IIS 7.5-Site, die Inhalte für Ссылка

bereitstellt

Ich wurde gebeten, Ссылка richtig zu routen (beachten Sie den nachfolgenden Punkt). Wenn Sie diese Seite jetzt treffen, erhalten Sie einen IIS-Fehler:

  

Schlechte Anfrage - Ungültiger Hostname

     

HTTP Error 400. Der Hostname der Anfrage ist ungültig.

Dies passiert sogar für Ссылка . Ich habe einige Websites gesehen, die nachgestellte Zeiträume erfolgreich routen (wie ) Ссылка ), aber es sieht so aus, als ob die meisten Apache und nicht IIS verwendet hätten.

Ich habe einen Hostheader in IIS für www.foo.com hinzugefügt. Dies ist zulässig. Sie können die Site jedoch nicht starten. Es wird nicht gestartet und öffnet ein Meldungsfeld, das sagt:

  

Der Wert liegt nicht im erwarteten Bereich.

Kann jemand in IIS Domänen mit abschließenden Punkten bereitstellen?

    
Aaron D 22.07.2010, 22:59
quelle

5 Antworten

5

Der abschließende Punkt ist ein absolut legaler Teil des Hostnamens - er ist normalerweise unsichtbar, weil er implizit in DNS enthalten ist. Wenn der abschließende Punkt vorhanden ist, wird er als "vollqualifizierter" Domänenname (FQDN) bezeichnet.

Beachten Sie, dass auf dem Draht DNS immer in FQDNs behandelt.

§3.2.2 von RFC 3976 (die Definition für URI-Syntax) sagt dies ( meine Betonung):

  

Ein durch einen registrierten Namen identifizierter Host ist eine Folge von Zeichen   normalerweise zum Nachschlagen in einem lokal definierten Host oder Service   Namensregistrierung, obwohl die schemaspezifische Semantik des URI dies erfordern könnte   dass stattdessen eine bestimmte Registrierung (oder eine feste Namenstabelle) verwendet wird. Das   Der gebräuchlichste Namensregistrierungsmechanismus ist das Domain Name System (DNS).   Ein registrierter Name, der für die Suche im DNS vorgesehen ist, verwendet die Syntax   in Abschnitt 3.5 von [RFC1034] und Abschnitt 2.1 von [RFC1123] definiert. Eine solche   Ein Name besteht aus einer Folge von Domain-Labels, die jeweils durch "." getrennt sind   Domain-Label beginnt und endet mit einem alphanumerischen Zeichen und   möglicherweise auch mit "-" Zeichen. Das Domain-Label ganz rechts   eines vollständig qualifizierten Domänennamens in DNS kann von einem einzelnen gefolgt werden   "." und sollte sein, wenn es notwendig ist, zwischen den zu unterscheiden   kompletter Domainname und eine lokale Domain.

Datei einen Fehlerbericht mit MS.

    
Alnitak 10.08.2010 18:52
quelle
2

Dies ist effektiv ein Fehler in IIS7 +, scheinbar ohne Umgehungslösungen. Es betrifft mich auch. Bitte stimme die Anfrage von MS ab, um das Problem zu beheben:

Ссылка

    
Brady Moritz 03.02.2012 07:22
quelle
0

Dieses Problem wird in Microsoft-Foren hier diskutiert und wird als Verhaltensänderung zwischen IIS 6 angesehen und 7.

Diese Seite hier bietet eine Arbeit um die URL auf der IIS-Seite neu zu schreiben.

Die für verschiedene Webserver erforderlichen Konfigurationsänderungen werden unten wiedergegeben, falls die oben genannte Seite jemals verschwindet.

%Vor%     
user1325094 24.07.2013 12:42
quelle
-1

Ich bin mir sicher, dass es irgendwo einen Fehler gibt, aber die Frage ist, was der Fehler ist.

Ich denke, dass der Fehler darin besteht, dass IIS Ihnen erlaubt, einen Host-Header mit einem abschließenden "." zu setzen. Der Host-Header ist nicht dasselbe wie ein FQDN. Der Host-Header soll der Host-Direktive in der HTTP-Anfrage entsprechen:

%Vor%

Es ist sicherlich in der URL gültig, die in den Browser eingegeben wird, zB: Ссылка wie dies gelöst ist, um herauszufinden, wohin die Anfrage gesendet werden soll.

Entfernen Sie den nachgestellten Punkt im Host-Header und es sollte OK funktionieren. Sie können es weiterhin in der URL verwenden.

Hoffe, das hilft

Jonathan

    
Jonathan Stanton 14.08.2010 13:04
quelle
-1

Der Browser ist schuld. Es sollte keinen nachfolgenden Punkt im Host-Host-Abschnitt der URL akzeptieren.

Speziell für FF und andere Mozilla-basierte Browser:

Fehler 124565 - DNS: URL: FQDN-Verwendung in "hostip"

Aus konstruktiver Sicht sollte die Netzwerkbibliothek (necko) dies ablehnen, aber die docshell (der benutzerfreundliche Teil) sollte wahrscheinlich eine vom Benutzer eingegebene Zeichenfolge abfangen und eine Korrektur vornehmen (entfernen Sie das ".", und säubere den Host: header).

Übrigens, necko hat auch ein Problem wo es fqdn-faul ist, es klebt das "." am Ende des FQDNs, wenn es die Anfrage an den Resolver sendet, wodurch jeder FQDN von der PQDN-Logik des lokalen Resolvers behandelt wird.

    
benc 15.11.2012 19:49
quelle

Tags und Links