Autor | Zpráva | ||
---|---|---|---|
nowis Profil |
#1 · Zasláno: 17. 11. 2015, 21:57:18
Zdravím,
řeším teď problém, jak uchovat nastavené filtry v tabulce vypsané z databáze a asi nejsnazší způsob mi přijde uložit do $_SESSION konec SQL dotazu "WHERE......" Nejsem si ale úplně jistý, jestli je to čisté nejen programátorsky (působí to na mně jako trochu prasárna) ale také s ohledem na bezpečnost, ikdyž nevím jak by se toho dalo zneužít. Prostě mi něco říká, že bych to tak dělat neměl. Jaký na to máte názor, řešili byste to stejně, nebo jinak a jak? Dík! |
||
Tomáš123 Profil |
#2 · Zasláno: 17. 11. 2015, 22:08:22
nowis:
Čistejšie by bolo ukladať do $_SESSION iba konkrétne hodnoty a SQL zostavovať až na mieste, kde sa použije.
|
||
nowis Profil |
jo jo, určitě je to elegantnější...
...a bezpečnost? Příjde někomu původně zamýšlené řešení z tohoto pohledu špatně? |
||
Alphard Profil |
#4 · Zasláno: 17. 11. 2015, 23:35:39
nowis:
„jak uchovat nastavené filtry v tabulce vypsané z databáze a asi nejsnazší způsob mi přijde uložit do $_SESSION“ Předpokládám, že tím je myšlen normální get formulář s parametry v url a session se používá pouze pro zapamatování si posledního nastavení. Tak je to v pořádku, ale nezapomenout na možnost všechy filtry smazat. „a bezpečnost?“ Tam problém nevidím. Escapování vstupů to databáze je samozřejmost, žádná dodatečná opatření nejsou třeba. Session hodnoty uživatel změnit nemůže, ale daná data pochází z uživatelských vstupů; v podstatě jako by tam žádné session nebyly. |
||
Martin2 Profil * |
#5 · Zasláno: 18. 11. 2015, 00:47:37
nowis:
„Nejsem si ale úplně jistý, jestli je to čisté nejen programátorsky (působí to na mně jako trochu prasárna)“ Je to svým způsobem prasárna. Programová logika by měla být oddělena od dat. „s ohledem na bezpečnost“ Session je poměrně bezpečné místo. I když na sdíleném hostingu ne tak jistě, PHP používá serializaci do obyčejných textových souborů. Správný postup nastínil Tomáš123. Zapamatuj si jen pole parametrů, SQL dotaz sestav z něj. Pomoci by ti měla nějaká databázová vrstva, která většinu práce udělá za tebe. |
||
Časová prodleva: 9 let
|
0