Portál AbcLinuxu, 1. července 2025 00:12
Dnes som objavil jednu naprosto triviálnu zraniteľnosť v mojom php projekte a keď som to chcel otestovať v najnovšom Firefoxe 4 beta 8 (vyšla tuším dnes) tak som zistil že Mozilla ukončila podporu Remote XULu.
Tu je ten problematický php kód:
function xml_comment_sql($s) { // sluzi na vypis SQL do komentaru XML pred spustenim toho SQL, kvoli ladeniu a tak global $mysql_link; echo "<!-- ".mysql_real_escape_string(htmlspecialchars($s),$mysql_link)." -->\n"; }
Ja som tam pred dvoma rokmi bezmyšlienkovite dal escapovanie pre sql, a nejak mi uniklo že musím escapovať aj dve pomlčky ktoré predčasne ukončia ten xml komentár. Viem si predstaviť zneužitie napr. v RSS feedoch. Útočník by tak ukončil komentár, za to by dal nejaký image kde src by bola nejaká ddos-ovaná stránka alebo také niečo. Ja viem, ja viem, namiesto bastlenia XML som mal použiť niečo normálne na generovanie. No, čo už, stane sa.
Druhá vec sa mi najprv zdala trochu nemilá ale potom som si uvedomil že je to vlastne dar z nebies. Mozilla ukončila podporu remote XUL v Firefoxe 4.0. Poučenie pre mňa: nikdy nechoď do frameworku ktorý má jediného dodávateľa. Konečne mám dôvod ukončiť podporu mojich XUL aplikácií a portnúť ich na HTML5.
Nedávno som v HTML5 objavil pár nových zaujímavých atribútov týkajúcich sa validácie formulárov u klienta. Prvý je "required", ktorý ak je input prázdny tak ho začervení. Druhý je atribút "pattern" kde môžete dať regulárny výraz (napr. slová začínajúce na "a", proste čokoľvek. Ďalšia novinka je typ "email" alebo "url", význam je snáď jasný. Nie je to úplne blbuvzdorné ale na základné zaplácnutie v pohode a netreba sa trtkať s JS kódom. Sú tam aj "min", "max" a pár ďalších naozaj užitočných vecí. Kontrola vstupov na serveri ale samozrejme zostáva, o tom bez debaty.
Tiskni
Sdílej:
Ja som tam pred dvoma rokmi bezmyšlienkovite dal escapovanie pre sql, a nejak mi uniklo že musím escapovať aj dve pomlčky ktoré predčasne ukončia ten xml komentár.Neukončuje náhodou komentář sekvence "-->"? "--" je začátek řádkového komentáře v SQL. A i kdyby se povedlo ten komentář nějak ukončit, jak tam někdo vloží obrázek, když tam nevloží < ?
--
není v XML komentáři povolená.
Jinak escapovat výstup pro XML pomocí funkce pro escapování SQL je – řekněme skutečně zvláštní přístup.
Sekvence -- není v XML komentáři povolená.Pravda, ale spíš to způsobí pád parseru s chybou než ukončení komentáře.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.