Diskuze: Validácia dát z databáze

PHP PHP Validácia dát z databáze American English version English version

Avatar
Benjibs
Člen
Avatar
Benjibs:

Ahojte,

oplatí sa podľa vás validovať aj dáta už uložené v databázi, keď ich z nej budem ťahať? (či náhodou niekto do nej medzi časom nezasahoval a nezmenil ich na neplatné hodnoty)

Raz už som ich validoval ešte pred tým, než som ich do nej dával.

SQL injection nikde nemám :P

Editováno 9.8.2014 20:16
Odpovědět 9.8.2014 20:15
1 + 1 = 2
Avatar
Odpovídá na Benjibs
Martin Konečný (pavelco1998):

Co máš přesně na mysli tím "validovat"? Do databáze by se měla ukládat surová data (tzn. v tom stavu, v jakém byla zaslána) a na výstupu je ošetřit třeba proti XSS.
Nevím, jak to dělají ostatní databáze, ale MySQL mi vždycky vrací hodnotu typu string (i když je sloupec typu INT), tak snad jedině přetypovat, pokud s tím děláš nějaké mat. operace. Jinak mě nic nenapadá.

 
Nahoru Odpovědět 9.8.2014 20:19
Avatar
Benjibs
Člen
Avatar
Odpovídá na Martin Konečný (pavelco1998)
Benjibs:

No, dajme tomu, že pre stĺpec XXX nechcem, aby v ňom boli hodnoty kratšie ako napr. 12 znakov.
Údaj, ktorý pôjde do tohto stĺpca, pochádza od užívateľa, preto ho najprv zvalidujem, či neobsahuje menej ako 12 znakov, až potom vložím do databáze.

Napadlo ma, čo ale ak mi niekto po vložení platnej hodnoty vlezie do administrácie databázy, a ručne tam tú hodnotu zmení napr. na 7-znakov dlhú, čiže podľa logiky mojej aplikácie na neplatnú.

Možno je to až príliš paranoidné, neviem posúdiť, preto sa pýtam na názor, či sa oplatí tie dáta kontrolovať, aj keď ich z databáze ťahám, aby som vedel rozlíšiť neplatný stav a zariadiť sa podľa toho :)

Editováno 9.8.2014 20:24
Nahoru Odpovědět 9.8.2014 20:24
1 + 1 = 2
Avatar
Odpovídá na Benjibs
Martin Konečný (pavelco1998):

Otázka je, proč by ti někdo lezl do databáze a hlavně, jak by se tam dostal. :-)
Já osobně validuji jen v případě, že ta data ukládám, poté už předpokládám, že budou ve správné podobě. Cizí člověk by se do databáze dostat neměl a člověk s pravomocemi by neměl udělat takovou blbost, jako je úmyslná manipulace s daty (měly by na to jít udělat nějaké podmínky, které když někdo poruší, může být i trestně stíhán).

Editováno 9.8.2014 20:45
 
Nahoru Odpovědět 9.8.2014 20:44
Avatar
Benjibs
Člen
Avatar
Odpovídá na Martin Konečný (pavelco1998)
Benjibs:

Tak fajn,
ďakujem :)

Napadlo ma to iba ako možnosť "reportnutia"(ma­ilom) podozrivej zmeny v DB,
aby som vedel, že som niekde v zabezpečení urobil chybu :)

Editováno 9.8.2014 20:55
Nahoru Odpovědět 9.8.2014 20:55
1 + 1 = 2
Avatar
Odpovídá na Benjibs
Martin Konečný (pavelco1998):

Je to jen můj názor a mé řešení, takže je dost možné, že se to dělá jinak (koneckonců já nemám zkušenost s nějakým větším nebo komerčním projektem).

Někde jsem četl, že při ostrém provozu by se na data v DB nemělo sahat pomocí programů jako je phpMyAdmin, snad kvůli tomu, aby tam někdo (byť jen nějakým "uklikem") neudělal nějaký bordel (třeba něco nesmazal apod.), ale pracovat s daty jen s pomocí vlastního scriptu, který zařídí, aby tam nikdo bordel neudělal.
Např. když budeš mít nějakého admina na správu stránky, kde běží nějaké CMS, tak by neměl mít přístup přímo do databáze, ale měl by mít možnost pracovat jen s určitými nástroji, které zařídí, aby neudělal nějakou kritickou blbost.

 
Nahoru Odpovědět  +2 9.8.2014 21:01
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.