Zadejte hledaný výraz...

PHP – bezpecnost + dotaz pri presmerovani

probos
verified
rating uzivatele
(1 hodnocení)
9. 6. 2011 13:11:21
Ahoj,
programování není moje hlavní činnost. Ale tak nějak jsem do toho před nějakou dobou spadl a začalo mě to bavit. Nejsem kvalitní prgoramátor a ani to o sobě netvrdím. Učím se sám ve volném čase a tomu také odpovídá progress...
Neprogramuji OOP a je to chyba. Učil jsem se programovat klasicky a teď je pro mě OOP celkem problém.
Můj dotaz směřuje na bezpečnost. Pokud se jedná o nějakou aplikaci s administrací - například nějaký menší eshop. Na jaké prvky se zaměřit co se bezpečnosti týče. Klasicky používám pri každém vkládání do DB funkci "mysql_real_escape_string" a při každém výstupu, který jde od uživatele používám "htmlspecialchars". Je něco dalšího na co se ohledně bezpečnosti zaměřit? Na co si dávat pozor apod?
--
Můj druhý dotaz se týká předávání proměnných při přesměrování.
Vždy kdyz jsem vyplňoval nějaký formulář, dělal jsem to tak, že postem data pošlu do souboru "akce.php" kde se spustí odpovídající část kódu - pomocí podmínek ověřím vstupy od uživatele (např.: email, povinná pole apod..) a pokud není nějaká podmínka splněna zapíšu si do SESSION chybovou hlášku, vrátím uživatele přes funkci "header" na odpovídající místo a zobrazím chybovou hlášku v SESSION, kterou následně po zobrazení smažu.
Problém nastane, že pokud uživatel měl celý formulář vyplněný a udělá někde chybu, vrátí ho to na formulář, vypíše hlášku ale formulář už neobsahuje vyplněná data. Nevím jak tento problém řešit. Jak můžu v souboru "akce.php" přes POST poslat data zpět k formuláři? Jaké máte zkušenosti, rady na řešení?
Používám u formulářů validaci přes JS ale je jasné, že ta v některých případech může selhat a je povinnost mít ošetřeno vše v i v PHP na straně serveru.
Díky za každé rady a doporučení. Rád se v tomto oboru zlepším.
PS: neříkejte mi ať se v první řadě naučím OOP. Mám to v plánu ale na spoustu věcí není OOP nutnost a jako profesionál se tím živit nehodlám :)
Díky.
9. 6. 2011 13:11:21
https://webtrh.cz/diskuse/php-bezpecnost-dotaz-pri-presmerovani#reply644148
Toho OOP se neboj.
Začal jsem se ho učit nedávno a nic složitého na tom není.
Jinak k těm formulářům.
Jde to udělat tak, že si v souboru akce.php uložíš do session údaje a ve formular.php je vložíš přes value a za koncem formuláře je vynuluješ. (podobně jako děláš tu hlášku)
9. 6. 2011 13:20:45
https://webtrh.cz/diskuse/php-bezpecnost-dotaz-pri-presmerovani#reply644147
probos
verified
rating uzivatele
(1 hodnocení)
9. 6. 2011 13:38:24
Takže bych pak měl u každé value něco jako "if(isset $_SESSION) {echo $_SESSION; }" ? Není to z hlediska bezpečnosti nějak na závadu? Ono by to vlastně bylo asi to stejné při POST, akorát jsem přemýšlel, že by se to mohlo naszpat do pole a používat tak jednu věc pro víc formulářů...
9. 6. 2011 13:38:24
https://webtrh.cz/diskuse/php-bezpecnost-dotaz-pri-presmerovani#reply644146
na bezpečnost nejsem profík, stále se také učím, ale myslím si, že by to z hlediska bezpečnosti na závadu nemělo být...
9. 6. 2011 13:44:15
https://webtrh.cz/diskuse/php-bezpecnost-dotaz-pri-presmerovani#reply644145
hm
verified
rating uzivatele
(20 hodnocení)
9. 6. 2011 13:51:49
snaz se sessions pouzivat jen uplne minimalne... tady k tomu se vubec nehodi... navic proc delat jiny soubor pro zpracovani formulare? proc ho nezpracovavas ve stejnem souboru, rovnou nevyhodis hlasky, bez potreby delat nejake rediry a prenosy dat pres sessions? navic delas klasickej proceduralni kod = prasarnu... stahnui si nejaky framework (Kohana, nette, zend, Code igniter, yiiframewor ... vyber si) jinak se z toho programovani za chvili zcvoknes, pochopit v souvislosti s frameworkem OOP by nemel byt velky problem, ja se ho taky naucil hlavne a prevazne az na frameworku...
9. 6. 2011 13:51:49
https://webtrh.cz/diskuse/php-bezpecnost-dotaz-pri-presmerovani#reply644144
probos
verified
rating uzivatele
(1 hodnocení)
9. 6. 2011 15:26:23
Ano, přesně takovej názor jsem čekal. Že je to prasárna a kdo ví co a ať přejdu na OOP :) Já to vím... všechno to vím ale jednou jsem se něco naučil a teď se těžko přenaučuje. Neprogramuju každej den X hodin. Dělám to ve volném čase, učím se ve volném čase.
Kdyby na to byl čas, učím se víc.
Pokud nebudu pouzivat SESSION tak jak mám předávat data přes header? A proč volím mít všechen kód v souboru akce.php ? Protože mi to přijde daleko přehlednější - na začátku souburu mám seznam funkcí nebo kódu - číslovaný a mám to oddelěné komentáři tak proč ne...
9. 6. 2011 15:26:23
https://webtrh.cz/diskuse/php-bezpecnost-dotaz-pri-presmerovani#reply644143
hm
verified
rating uzivatele
(20 hodnocení)
9. 6. 2011 15:35:31
:) radu jsi dostal, naloz s ni jak chces, jne rikam, ze to delas spatne a ze se to takhle nedela... jinak i ja delal dlouho procedural, neni to zas tak spatne pokud se pouziva poradne a dba se na oddelovani PHP od html, dba se na pouzivani fci aby se kod zbytecne neopakoval atd...
jinak delat formular pres jeden soubor/jendu adresu (souboruz diky include atd muzes mit treba sto, pokud ti to pomuze udrzet kod cistci a prehlednejsi) hlavne proto, ze nemusis resit zadne predavani dat nikam - proste jeden a ten samy kod formular vypise, zpracuje, vypise chyby hned pri zpracovani, zadne rpedavani dat nikam, zadne rediry... redir v pripade uspesneho odeslani, aby se nestalo ze F5 odesle formular znovu, ale jinak redir v pripade chyby je to posledni co chces delat (pak vymyslis takove kraviny jako predavani error message pres sessions)
9. 6. 2011 15:35:31
https://webtrh.cz/diskuse/php-bezpecnost-dotaz-pri-presmerovani#reply644142
probos
verified
rating uzivatele
(1 hodnocení)
9. 6. 2011 15:39:10
Jo jo, v tom pripade souhlasim. Asi bude lepsi to delat jinak... mozna jak bude cas se zkusim pustit do toho oop. Libi se mi nette ale prijde mi slozitej. Co se bezpecnosti tyce... je neco jineho na co bych si mel davat pozor krome osetreni vstupnich a vystupnich dat pomoci funkci ktere jsem zminil v prvnim postu ?
9. 6. 2011 15:39:10
https://webtrh.cz/diskuse/php-bezpecnost-dotaz-pri-presmerovani#reply644141
hm
verified
rating uzivatele
(20 hodnocení)
9. 6. 2011 15:52:32
dbej na osetrovani dat prichazejicih zvenci zaprve jejich validaci (konctrolou ze radek s telefonnim cislem obsahuje cisla nikoliv slova apod.) za druhe jejich vypis vzdy prozen htmlspecialchars, nechces aby ti lide vkladali na stranky svoje data a svuj html (a to se tedy tyka i vypisu dat do policka formulare v priapde ze nastane nejaka chyba a policko se predvyplni predtim zadanymi daty) ze treti prti vkladani do db data vzdy bezpodminecne escapuj a to proisimte nikoliv pomoci adslashes, nybrz pomoci mysql_escape_string (nebo mysql_real_escape_string) pripadne ekvivalentu pro jine databaze (nebo pouzivej PDO a jeho prepared statements)
nikdy neopomen nic, overuj kazdy vstup i yvstup do ktereho lze zasahnout zvenci to znamena tedy hlavne _GET _POST _COOKIES, nikdy nikam nevypisuj ani nevkladej predem neosetreny retezec z techto vstupu... samozrejme se to tyka i uploadu souboru apod. striktne kontroluj co se vlozilo, jestli to odpovida pozadavkum, vzdy vse validuj. Bud paranoidni, nikdy nic nevynechavej protoze an to treba ted nemas naladu nebo cas, bud vzdy dusledny, pak se ti nestane ze bys na neco zapomnel nechtene... a jestli chces vedte vic, stan se hackerem (myslim to vazne), kdyz sam budes vedet jak utoky provest, budes zaroven vedet i jak se proti nim branit a porozumis bezpecnosti do hloubky
9. 6. 2011 15:52:32
https://webtrh.cz/diskuse/php-bezpecnost-dotaz-pri-presmerovani#reply644140
probos
verified
rating uzivatele
(1 hodnocení)
9. 6. 2011 16:12:26
Díky moc. Takovou odpoved jsem si predstavoval. Myslim ze na real_escape_string a htmlspecialchras jsem dusledny. Stejne tak validace dat z Databaze. Ale urcite mi to pomohlo. Diky
9. 6. 2011 16:12:26
https://webtrh.cz/diskuse/php-bezpecnost-dotaz-pri-presmerovani#reply644139
Pro odpověď se přihlašte.
Přihlásit