Zajištění PHP POST proti podvrhům

fauf

Zajištění PHP POST proti podvrhům
« kdy: 13. 05. 2013, 02:54:58 »
Zdravim,

som pomerne zaciatocnik, a kodujem jednu aplikaciu na andoid ktora bude posielat data na server cez hpp post.

Dajme tomu: .../index.php?action=post;data=secretdata

no a coho sa obavam je ze niekoho niekedy napadne dany post obkukat a zacat ma floodit fake datami ...

Tak ma napadlo ze by som okrem DAT posielal este dve veci - nejaky nahodny, hocijaky a vzdy iny string a potom nejaku "variaciu" toho stringu... dajme tomu sha-1 hash odzadu ... a vsetko co by vzajomne nesedelo jednoducho odignorovat...

no a potom by to "flooder" mal pomerne tazke nie? zistit co to vlastne s tym stringom robim aby data presli .... toto ma napadlo asi po 10 sekundach uvazovania, je to dobry napad? su lepsie?

Dakujem
« Poslední změna: 13. 05. 2013, 09:36:26 od Petr Krčmář »


just saying

Re:Jak zabezpecit PHP POST proti falosnym datam?
« Odpověď #1 kdy: 13. 05. 2013, 03:22:08 »
Security by obscurity, proc ne, ale neni to silver bullet - kdyz jsi velky ci pro nekoho zajimavy target, tak si muze dat tu praci a reverznout ti tve reseni eventuelne.

Ja rikam proc ne, ale mozna by mohlo byt lepsi resit to nejak na systemove urovni, treba pres iptables (max pocet spojeni per IP) nebo nejakym apache modulem, pokud je primo potreba branit se proti floodingu/dos

http://stackoverflow.com/questions/14477942/how-to-enable-ddos-protection

just saying

Re:Jak zabezpecit PHP POST proti falosnym datam?
« Odpověď #2 kdy: 13. 05. 2013, 03:39:58 »
Jinak ale samozrejme jedina spravna politika je neverit nicemu a akceptovat pouze takova data, jaka jsou ocekavana. To se tyce i HTTP headeru a obsahu susenek. Neni nic jednodussiho dneska nez menit HTTP requesty on the fly, na to existuje spousta nastroju, a da se menit uplne vsechno.

Re:Jak zabezpecit PHP POST proti falosnym datam?
« Odpověď #3 kdy: 13. 05. 2013, 03:45:44 »
Security by obscurity, proc ne, ale neni to silver bullet - kdyz jsi velky ci pro nekoho zajimavy target, tak si muze dat tu praci a reverznout ti tve reseni eventuelne.

Ja rikam proc ne, ale mozna by mohlo byt lepsi resit to nejak na systemove urovni, treba pres iptables (max pocet spojeni per IP) nebo nejakym apache modulem, pokud je primo potreba branit se proti floodingu/dos

http://stackoverflow.com/questions/14477942/how-to-enable-ddos-protection

kze az mu to nekdo nabori, tak mu nedovolis to nabourat vicekrat : O

pro zacatek zpracovavej jen ty requesty, ktere si "objednas", tim se vyhnes hromade problem. Dalsi osetreni je validace vstupnich dat. A ne jen formalni validace, ale taky jestli pozadavek dava smysl. Napr jestli neautorizovany uzivatel nemuze pres nezabezpecene skripty/api prohlizet objednavky ostatnich. Menit je apod.

btw podobne reseni, ktere popisujes, tj prilozit k requestu napr podpis celeho pozadavku, je hojne sklonovano a vyuzivajiho skoro vsechny platebni brany. Pouzivaji bezne openssl knihovny. Trosku kompilkace je ve vymene certifikatu, kterym se podepisujou a overujou data. Nadruhou stranu, da se udelat nejaka simple varianta bez vymeny klicu s castou obmenou klicu aby se stizil re.

taky se podivej na viewstate jak ho pouzival/pouziva? asp.net, to se skoro neda re bez znalosti kodu. a i tak : O

http://php.vrana.cz/obrana-proti-sql-injection.php
http://php.vrana.cz/cross-site-scripting-poradne.php
http://phpfashion.com/hackeri-vam-zautoci-na-web
..
.

btw vyse uvedene nepropaguji jako samospasne a vsevedouci..

just saying

Re:Jak zabezpecit PHP POST proti falosnym datam?
« Odpověď #4 kdy: 13. 05. 2013, 03:52:27 »
Jeste bych dodal k tomu "security by obscurity" reseni, ze neni potreba pocitat rovnou sha-1 a delat nejake slozite (narocne) operace. Muzes treba vzit delku dat a vynasobit prvnim bajtem (nebo poslednim, ci necim podobnym..) a posilat jen cislo.


Re:Jak zabezpecit PHP POST proti falosnym datam?
« Odpověď #5 kdy: 13. 05. 2013, 07:50:21 »
jestli pracujes s DB a ta data tam chces posilat tak hlavne nepouzivej "obycejne" query ale PDO nebo nejaky DB API ktere je na PDO postavene.
Děkuji za možnost editace příspěvku.

Tom_as

Re:Jak zabezpecit PHP POST proti falosnym datam?
« Odpověď #6 kdy: 13. 05. 2013, 09:07:38 »
Co tak prejit na framework, ktery tuhle vec resi za tebe a nevymyslet co uz je strokrat vymyslene?

mif

Re:Jak zabezpecit PHP POST proti falosnym datam?
« Odpověď #7 kdy: 13. 05. 2013, 09:14:53 »
android appka sa da krasne dekompilovat (pokial nepises native kod :) ) a tam sa da zistit ake security pouzivas. Lepsie by bolo data cryptovat cez public-private key, potom by to mohlo byt safe.

j

Re:Jak zabezpecit PHP POST proti falosnym datam?
« Odpověď #8 kdy: 13. 05. 2013, 09:15:14 »
Co tak prejit na framework, ktery tuhle vec resi za tebe a nevymyslet co uz je strokrat vymyslene?

jj, stravit par mesicu zkoumanim, jak to funguj a ziskat 1/10 vykonu a spostu fukncionality, kterou vubec nanic nepotrebujes ...

fauf

Re:Jak zabezpecit PHP POST proti falosnym datam?
« Odpověď #9 kdy: 13. 05. 2013, 09:21:39 »
oki dik, :) tim ze nepotrebuju sha1 odpadne hodne prace na serveru to je fajn napad :)

k tem kontrolvoanym requestum :( ta apka ma byt free pro kazdeho a sbirat statisticka data ..... takze tam nemam moc sanci nic nijak extra overovat :( nebo lepe receno "ocekavat" a na zaklade toho filtrovat

a nakonec ze na androidu lehce nekdo koukne co to dela .... asi mate pravdu a implementuji si vlastni reseni s klicma ... dekuju :)