Autor | Zpráva | ||
---|---|---|---|
Limit Profil * |
#1 · Zasláno: 1. 7. 2007, 16:13:41
Zdravím,
rád bych si zabezpečil své skripty, ale moc se neorientuji v tom jaké techniky se pro injekci a podobné metody používají, normálně si všechny výstupy z formulářů a GET proměnné protahuji skrz strip_tags(trim($bla)); stačí to na ochranu (jak pro zápis do mysql tak pro práci v php skriptu) proti prolomení stránek? Dále mám jeden formulář u kterého však z jistých důvodů výše uvedené funkce použít nemůžu, protože potřebuji aby se tam daly vepisovat neporušeně html tagy, css atd (všechno kromě php a mysql kodu)... hodnota z něj se prostě vezme a zapíše do db, zatím u něj pouze nahrazuji uvozovky za entity mám si dát pozor ještě na jiné znaky? díky |
||
Alphard Profil |
#2 · Zasláno: 1. 7. 2007, 16:19:20
mysql_real_escape_string()
|
||
Limit Profil * |
#3 · Zasláno: 1. 7. 2007, 16:20:32
no to mi vyescapuje úplně všechny uvozovky a to právě nechci
|
||
Limit Profil * |
#4 · Zasláno: 1. 7. 2007, 16:39:43
Nebo jinak, je nějaká funkce která umí escapované znaky "deescapovat"? Je mi totiž jedno co je tam escapované, když se s tím pracuje ve skriptu nebo je to zapsané v databázi, jde mi hlavně o to, aby se při výpisu na stránku ty escapované znaky daly do původní podoby, ve které byly napsány do formuláře..
|
||
TFSi Profil |
#5 · Zasláno: 1. 7. 2007, 16:49:53
Tak vyzkoušel bych co umí tyto funkce:
http://cz2.php.net/htmlspecialchars http://cz2.php.net/addslashes http://cz2.php.net/stripslashes http://cz2.php.net/manual/cs/ref.info.php#ini.magic-quotes-gpc |
||
Limit Profil * |
#6 · Zasláno: 1. 7. 2007, 16:57:03
Jj to je to co potřebuju, díky tfsi
|
||
krteczek Profil |
#7 · Zasláno: 1. 7. 2007, 18:16:07
Limit: escapování znaků při přenose metodou post, get... způsobuje zaplá directiva magic_quotes_gpc. existuje na to funkce která zistí jestli je directiva zaplá a pokud ano odstraní lomítka directivou přidaná.
použij ji vždy hned na začtku skriptu před zpracováváním proměnných
tím dostaneš data do původního stavu (před odesláním) dále použij pro ošetření dat před uložením do databáze funkci: mysql_real_escape_string();, taky je na to napsaná drobná funkcička:
krteczek |
||
sessu Profil * |
#8 · Zasláno: 1. 7. 2007, 20:07:13
Jestli se můžu přidat do "konverzace" pokud kontroluju input před "škondlivými" znaky, tak nemusím používat funkci mysql_real_escape_string ne?
|
||
krteczek Profil |
#9 · Zasláno: 1. 7. 2007, 23:13:50 · Upravil/a: krteczek
sessu: pokud jsi si jisty že to máš dobře, proč ne, ale toto je funkce na to určená. prostě ošetřím a mám klid, nemusím se bát že někoho napadne způsob jak to obejít
|
||
sessu Profil * |
#10 · Zasláno: 2. 7. 2007, 23:05:52
Jsem si jistý, nedovolí zapsat nic než podtržítko, mezeru a myslím tečku.
V tom případě mysql_real_escape_string sice zabrání sql injection, ale nezabrání člověku se registrovat třeba jako : $÷$ß÷^˘°^ˇ :-) protože je zbytečný mít obojí, že jo :-) |
||
Časová prodleva: 17 let
|
0