Diskuze: Nefunkční string
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 9 zpráv z 9.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Co znamená vypsat? Kde vypsat? V konzoli? V Html template?? Ten znak tam je na 100% jen jde o to, jakou používáš znakovou sadu, případně jaký máš escaping, kvůli bezpečnosti.
pokud vypisuješ do konzole, musíš ji přepnout z na unicode:
Console.OutputEncoding = System.Text.Encoding.Unicode
Používám to ve windows form aplikaci kde do stringu ulozim promene pomocí & je oddelim a stahuji pres webclient s tím že to otevře http://neco,cz/index.php?…&..... A čekám co se vráti ... Ale když jsem to nechal tu cestu vypsat labelem tak se to vše objevilo bez znaku &
Protoze to encoduje z bezpečnostních důvodů. Ta komponenta ma na sobe neco jako EncodeHTML a je to nastavitelný bool.
Doporučuji si ale dvakrát rozmyslet, než to vypneš. pokud je to totiž input od uživatele, vystavuješ se tím XSS útoku.
A jak to lze bezpečně vyřešit. ?
Buďto musíš omezit to co může být inputem, nebo musíš upravit sanitizacni strategii, ktera se pouziva u toho zobrazovani.
pokud jsi si opravdu jistý, že se v tom labelu vyskytnou vždy bezpečná data, můžeš u něj vypnout encoding. Druhá možnost je kouknout se na sanitizaci (HTML Encoding) web formu a třeba ho přenastavit. (nemám tušení jak se to dělá).
Popravdě jsem s webform nedělal X let a už si to nepamatuji, Vim, že je tam Label a Literal control a jeden z nich se encoduje, druhý ne.
Musím tě asi odkázat na google / dokumentaci.
jsem to nechal tu cestu vypsat labelem tak se to vše objevilo bez znaku &
aby se ti vypsal v labelu znak & musíš tomu labelu nastavit .UseMnemonic=false
url = "http://neco.cz/login.php?&user=" + d_usr + "&pass=" + d_pass;
WebClient wc = new WebClient();
wc.Encoding = System.Text.Encoding.UTF8;
string data = wc.DownloadString(url);
V kódu mám udělané toto ale ono to vůbec na to stránku "nevleze" ani
nestáhne
=(
Zobrazeno 9 zpráv z 9.