IIS 7 und + in URLs

by wolfgang@gehirnwindung.de (Wolfgang) April 08, 2009 19:12

Ich hab gerade nach einem Fehler suchen müssen, der Plus-Zeichen in URLs betrifft. "Früher" (IIS 6) hat's noch so funktioniert wie es funktionieren sollte. %20 ist der Code für ein Leerzeichen, aber auch + kann für ein Leerzeichen angegeben werden (warum auch immer). Auf dem Server wird dies wieder dekodiert und entsprechend verwertet. Wollte man, dass der Server ein Plus-Zeichen, statt einem Leerzeichen übergeben bekommt, so musste man das + entsprechend mit %2B codieren.

Im IIS 7 wurde aber aus %2B kein +, sondern es kam zu einer Fehlermeldung (File not found). Auch bei %252B (%25 ist das %-Zeichen selbst) kommt es zu diesem Fehler.

In der erweiterten Fehlermeldung eines lokalen IIS 7.0 steht es dann genauer drin. Hier wurden erweiterte Sicherheitsmechanismen erdacht, die (in diesem Fall) Schutz vor dem so genannten double encodingbieten sollen. Um diesen Schutz abzuschalten und damit wieder ein + in Dateinamen angeben zu können, muss man in die entsprechende web.config folgendes eintragen.

<configuration>
    <system.webServer>
        <security>
            <requestFiltering allowDoubleEscaping="true" />
        </security>
    </system.webServer>
</configuration>

Natürlich nur, wenn's nicht anders geht und man dieses Feature dringend oder gar zwingend braucht!

Wer im Besitz des Adminstration Packs for IIS 7.0ist, findet die Einstellung unter "Request Filtering",

... "Edit Feature Settings...",

... und dort unter dem Namen "Allow double escaping".

 

 

Kommentare

08.04.2009 19:13:02 #

trackback

Trackback from dotnet-kicks.de

IIS 7 und   in URLs

dotnet-kicks.de |

08.02.2011 11:15:40 #

sebres

Microsoft will ernsthaft aus dem WEB-Geschaft aussteigen!
Plus-Zeichen kann man lt. ISO nur mit %2b urlkodieren, da es unkodiert für Leerzeichen steht.
Sowas als "doppelkodiert" zu erkennen ist blödsinn!
Somit hat Microsoft das + Zeichen aus ASCII-Zeichensatz weggeworfen Smile.

sebres Deutschland |

Kommentare sind geschlossen

Powered by BlogEngine.NET 1.6.1.6
Theme by Mads Kristensen | Modified by Mooglegiant and me ;)