Autor | Zpráva | ||
---|---|---|---|
kohl Profil |
Dobrý den,
zjistil jsem, že mám díru v zabezpečení, kdokoliv mi může vložit javascript do stránky, chtěl jsem do ošetřit funkcí htmlspecialchars(), addslashes(),strip_tags() to ale změní výstup. Potřebuji to zabezpečit a aby se nezměnil výstup, jinak by to uživatele mohlo zmást. <?php echo'<form action="" method="get">' . '<input type="text" name="search" value="'.( empty($_GET["search"]) ? null : $_GET["search"] ) .'"/>' . '</form>'; ?> Děkuji za odpovědi. |
||
Alphard Profil |
#2 · Zasláno: 9. 7. 2012, 18:16:56
Jak se změní výstup? Prohlížeč přece entity převede na správné znaky a ty zobrazí. Jestli ne, zřejmě se vám povedlo "znásobit ošetření", escapovat již escapovaný řetězec a rozbil jste si to.
|
||
kohl Profil |
#3 · Zasláno: 9. 7. 2012, 18:25:39
Nepřevede, když je to hodnota inputu. Funkce jsem zkoušel postupně.
|
||
Alphard Profil |
#4 · Zasláno: 9. 7. 2012, 18:32:01
Píši:
<?php $val = "°!sfíš&@#\"\\sdfk'!´="; ?> <input type="text" value="<?php echo htmlspecialchars($val); ?>"> V html zdrojáku vidím: <input type="text" value="°!sfíš&@#"\sdfk'!´="> A v input na stránce: °!sfíš&@#"\sdfk'!´= Něco děláte špatně. |
||
kohl Profil |
#5 · Zasláno: 9. 7. 2012, 18:37:49
Teď jsem to zkoušel znovu a šlo mi to.
Vůbec nechápu, proč mi to předtím nešlo. Děkuji za pomoc. |
||
Časová prodleva: 12 let
|
0