Autor | Zpráva | ||
---|---|---|---|
Mufna Profil |
#1 · Zasláno: 9. 5. 2010, 14:43:22 · Upravil/a: Mufna
Mám takovýto kód pro kontrolu všech prvků pole $_POST
if ($_POST["send"]) { // * ochrana pred XSS foreach ($_POST as $key => $value) { $_POST[$key] = htmlspecialchars(trim($value)); } // * kontrola vsech povolenych znaku regularem foreach ($_POST as $key => $value) { $_POST[$key] = preg_replace( "/[^a-zA-Z0-9áčďéěíňóřšťůúýžÁČĎÉĚÍŇÓŘŠŤŮÚÝŽ]/", "", $_POST[$value]); } Otázky: 1) bude to fungovat správně, když chci aby šly vyplnit pouze písmena české abecedy (obecně samozřejmě i všechna písmena bez diakritiky) + jakékoliv číslo ? 2) když budu chtít povolit nějaký další konkrétní znak, stačí ho přidat do reguláru, třeba za Ž nebo kamkoliv jinam ? 3) není ta první kontrola na XSS v tomto případě nadbytečná ? Zatím si myslím, že ano 4) ve vlastním HTML stránky s formulářem (v meta tagu) je deklarováno kódování UTF-8. Stačí to ? |
||
Majkl578 Profil |
#2 · Zasláno: 10. 5. 2010, 00:13:54 · Upravil/a: Majkl578
Před interpunkcí se nepíše mezera (nejsme Francouzi).
1) Selže to v případě, že v post datech přijde pole. Mezery nedovoluješ? 2) Když ho proženeš přes preg_quote, tak by mělo. 3) To přeci záleží na tom, co požaduješ. Podle mě je celý tenhle kód chybný. 4) Stačí k čemu? Význam scriptu mi uniká. Na chyby se přece má upozornit, ne je ututlat a uložit něco jiného než si uživatel přeje. |
||
Časová prodleva: 14 let
|
0