Autor Zpráva
Baletak
Profil *
Ahoj, jak můžu načíst data z mysql abych oštřil spuštění třeba JS kódu? Předpokládám, že to bude něco jako htmlspecialchars(), htmlentities() nebo možná úplnš něco jiného ;) Děkuji
Janča N.
Profil
Když potom vkládáš něco do SQL dotazu, tak se taky hodí: mysql_real_escape_string pro String. Pro čísla pak přetypování.
Hando
Profil
Ale on se ptá na vytahování dat z DB, ne na ošetřování vstupu. Nicméně filtr na vstupu je lepší řešení. Kontrolu udělat stejně "musíš".

Co to bude za data a kdo je do té databáze bude vkládat? Pokud to budeš ty, tak bys měl mít pod kontrolou, co do toho vkládáš a jestli už ta data neobsahují nějaký potenciálně škodlivý kód. Pokud to bude neprověřený uživatel, tak je skutečně nutné nějaké sanitizování vstupu. Na to se hodí to, co píše Janča, tedy na obranu proti SQL Inj. Abys zabránil vložení <....> symbolů a dalších podobných potenciálně nebezpečných symbolů, tak htmlspecialchars().
Tori
Profil
Baletak:
Tohle vypadá jako celkem schopná ochrana proti XSS. (nezkoušela jsem to)
Baletak
Profil *
To Hando:
Nevím, ale co si pamatuji, tak fce htmlspecialchars() nemá na vstupu co dělat, měla by být jen pro výstup ;)
Janča N.
Profil
Jen ještě doplním, že k htmlspecialchars() je reverzní funkce htmlspecialchars_decode() , kdyby jí bylo třeba.
Keeehi
Profil
Baletak:
Správně. V databázi by měla být surová data. Takže při ukládání mysql_real_escape_string(), pro čísla přetypování. Ošetření se má dělat až při výstupu podle typu výstupu. Jelikož ti jde o výstup do html stránky tak se dají použít funkce tebou zmiňované, případně strip_tags() pro úplné odstranění.
Enko
Profil *
Keeehi:
případně strip_tags() pro úplné odstranění
Jenže používání striptags není úplně bezpečné a ani není doporučované, zkus si o tom něco přečíst! Více na blogu Jakuba Vrány

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: