Odeslání/načtení odkazu z databáze   zodpovězená otázka

ASP.NET WebForms

Ahoj narazil jsem problém s odkazy. Pokud chci přes FormView uložit do databáze v textu odkaz(např. <A HREF="http://www.seznam.cz">seznam</A> ) zobrazí se mi chybová stránka (A potentially dangerous Request.Form value was detected from the client (ctl00$ContentPlaceHolder1$FormView1$textTextBox="<A HREF="http://www...."). Nevíte jak tomuto předejít? A druhá část dotazu se týká zobrazení. Dal jsem tento odkaz do databáze ručně ale komponenta DataList ho načte jako text. Jde nějákým jednoduchým způsobem ošetřit aby se odkaz choval jako odkaz?:)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

K prvnímu problému, nahoru do stránky do direktivy Page vložte parametr ValidateRequest="false".

Co se týče druhého problému, použijte uvnitř DataListu komponentu HyperLink a na příslušný sloupec navažte vlastnost NavigateUrl, asi takto:

<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%#Bind("Odkaz")%>' />

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Na ValidateRequest="false" pozor. Ne že by to byla kdovíjak dokonalá ochrana, ale s jejím vypnutím si člověk musí dát mnohem větší pozor co za data přijímá. Stačí drobný fórek

<script> alert("dotal jsem tě, padouchu!"</script>

případně odkaz na jiný méně žertovný skript nebo SQL injection. Doporučuji se mrknout na www.altairis.cz do archivu přednášek.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Zapomněl jsem podotknout, že takový drobný žert pošle nějaký uživatel webu ve vstupním poli.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Přesně tak, musíte si zajistit, aby se všechna pole, která vypisujete do formuláře, správně zaHTMLEncodovala. Buď na ně zavolejte HttpUtility.HtmlEncode(text) anebo je vypisujte přes komponentu Literal a nastavte vlastnost Mode na hodnotu Encode. Jinak se případný vložený kód dostane do HTML kódu stránky. SQL injection nehrozí, pokud používáte parametry a neskládáte SQL příkaz sami.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback