Jeste bych prosil o rozvedeni te pripadne SQL injektaze, nejaky priklad... Uplne tam tu diru nevidim a pokud tam je, tak bych se rad poucil... Diky. PS: na vstupni data (nez jsou ulozeny do DB) je zajiste pouzita escapovaci funkce... Zde se jedna pouze o vypis dat jiz ulozenych v DB...
Omlouvám se, moje chyba - SQL injekce tam není, pouze může uživatel rozbít ten JSON (resp. JS literál). Pokud obsah v DATA bude na konci obsahovat backslash (což žádná z těch REPLACE funkcí neošetřuje), tak v JSONu bude
DATA: 'obsah \', DATAEN: 'obsah v dataen', t.j. z pohledu JS literálu obsah klíče DATA je
obsah ', DATAEN: Dopady nemá smysl rozebírat, jelikož není známo, jak se s tím dál pracuje (navíc to nemusí být přesně, jak jsem psal, a to kvůli newline před DATAEN).
K tomu escapování před uložením do DB - data se zvyknou ukládat v surové podobě, ve smyslu ~"tak, jak je uživatel viděl ve vstupním poli, když je zadával". Samozřejmě, pouze validní. Pokud se tam dávají jinak, tak si člověk zadělává na problém, pokud je potřeba je dál zpracovat, což (časem) typicky potřeba je. Hodně triviální příklad - pokud bych chtěl někde vypsat pouze prvních X znaků z uložených dat a ukládám to předpřipravené pro HTML, t.j. místo < jsem uložil <, tak se při oříznutí můžu trefit zrovna doprostřed entity.
To jen taková poznámka pod čarou
.