Microsoft .NET es \ (%5C) az urlben :-(

Fizetős(!) szoftver azért nem tud kapcsolódni egy szerverhez, mert annak az url-jében visszafele dőlő perjel (%5C) van, ésa .NET framework szinten lecseréli előrefele dőlő perjelre :)

A sluszpoén pedig az, hogy azért van visszadőlő perjel az urlben, mert "INTRA\kisjakab" felhasználóról van szó. :)))

Bár ez szerveroldali .net, de kb. ugyanaz a hiba: http://stackoverflow.com/questions/4744036/in-net-mvc-url-converts-to-a…

4 éves bejegyzés:)

Persze a program zárt forráskódú, és a válasz annyi (miután egy hete levelezünk és teszaccountot is létrehoztam nekik), hogy nem tudják megoldani, mert .NET frameworkot használnak... :))

Sok a szmájli, de inkább sírhatnékom van... :-\

Hozzászólások

Biztos az URL en-/decoder eredeti szerzője ezt világmegváltó featurenek tervezte (a '\' lecserélését '/'-re).
Aztán ez egy csomó hibához vezetett.
Időközben viszont a hibák feature-ré értek :-)

De szerintem a szoftver gyártója meg tudná oldani a problémát, ha nagyon akarná.

Fuszenecker Róbert

Per illetve backslash jelet cserélgetni még csak-csak, az ilyen akkor válik igazán izgalmassá, ha a filenévben vagy alkönyvtár nevében van per jel vagy literális backslash.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE


PS C:\> new-object Uri 'http://hup.hu/node\142538'


AbsolutePath   : /node/142538
AbsoluteUri    : http://hup.hu/node/142538
LocalPath      : /node/142538
Authority      : hup.hu
HostNameType   : Dns
IsDefaultPort  : True
IsFile         : False
IsLoopback     : False
PathAndQuery   : /node/142538
Segments       : {/, node/, 142538}
IsUnc          : False
Host           : hup.hu
Port           : 80
Query          :
Fragment       :
Scheme         : http
OriginalString : http://hup.hu/node\142538
DnsSafeHost    : hup.hu
IdnHost        : hup.hu
IsAbsoluteUri  : True
UserEscaped    : False
UserInfo       :

:(

Amit tudunk az rfc3986 alapján:

Special care should be taken when the URI path interpretation process
involves the use of a back-end file system or related system
functions. File systems typically assign an operational meaning to
special characters, such as the "/", "\", ":", "[", and "]"
characters, and to special device names like ".", "..", "...", "aux",
"lpt", etc. In some cases, merely testing for the existence of such
a name will cause the operating system to pause or invoke unrelated
system calls, leading to significant security concerns regarding
denial of service and unintended data transfer. It would be
impossible for this specification to list all such significant
characters and device names. Implementers should research the
reserved names and characters for the types of storage device that
may be attached to their applications and restrict the use of data
obtained from URI components accordingly.

Persze ez nem jelent semmi különöset, csak vannak a munkaeszközükhöz nem értő trehány programozók. :(
Láttam már hasonlót...
Miért is kell backslash-t % jellel írni? A http esetén egyes karakterek literálása megegyezés kérdése lehet! A "szabványosjávahttp" (???? -> :))))) alkalmazásakor is a(z rfc2616 szerint) speciális karaktereket literálja. Kivétel, ha a trehány szakember mégis elolvassa a specifikációt, amelyben benne van, hogy inicializálni kell az ojjektumot. Akkor meg semmi ilyesmit nem tesz!
Szerintem itt is ilyen jelenség lehet, mert a MS valószínűleg nem vágja maga alatt a fát.

Semmi escapelési kiskapu lehetőség nincsen? De rossz :-(