Diskuze: Symfony / Doctrine - šifrování databáze, AES_ENCRYPT
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Tvůrce

Zobrazeno 8 zpráv z 8.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
koukám, že šifrování celé databáze má mysql až v placené verzi ...
Symfony ... tady píšou o nějakém bundle i o zádrhelích
https://stackoverflow.com/…crypt-column
tady je další bundle:
https://github.com/…rine-encrypt
a budou asi i další ... osobně nemám zkušenost ani s jedním
php má modul mcrypt .... pokud budes sifrovat jen jeden sloupec, tak staci
viz: https://www.bing.com/search?…
další možnost může být použití PostgreSQL, ježto by měla šifrovat zadarmo, co vím a doctrine pro ní má modul
Přesně ten článek o Symfony jsem četl a o moc moudřejší z toho nejsem. Všude se odkazuje na frameworky a mnohdy se ještě zpochybňuje jejich funkčnost. Není nějaká jednoduchá možnost, jak šifrování nastavit, ať už přímo v Symfony nebo MySql?
Mcrypt je dobré nasměrování jak praví Jirka Jr, ale bohužel zastaralé.
Místo toho by ti mělo bohatě stačit: http://php.net/…-encrypt.php
na úrovni databázového stroje:
jo, sorry, ještě jsem zapoměl na existenci mariadb, což jest fork mysql
ta by měla mít šifrování zadarmo na úrovni tabulek nebo tak nějak
https://mariadb.com/…-encryption/
na úrovni symfony:
"Všude se odkazuje na frameworky a mnohdy se ještě zpochybňuje jejich
funkčnost" .... tak to ve světě opensource chodí .... komu se to vyplatí,
zaplatí si podporu ... ostatní se vrtaj ve staženém kódu sami a po nějaké
době praxe se nechají na tuto činnost najmout
vyzkoušej ty dva bundly na nějakých dummy datech, jak to bude nebo nebude fungovat podle tvych predstav, případně se mrkni do kódu toho bundlu a sám uvidíš ...
taky se kolikrát orientuju podle toho, jak moc je o ten bundle zájem a jak aktivní je vývoj ... na githubu je to vidět v grafech, případně bugy a jejich fixy v issues, historie verzi, pochopitelnost dokumentace a tak
na úrovni db dotazů:
jinak bacha, pokud chceš šifrovat data vlastními silami a ne transparentně databázovým enginem, tak se připrav na to, že nemůžeš udělat
SELECT jmeno, prijmeni, ulice, mesto WHERE mesto LIKE 'Praha%'
minimalne v tom WHERE musi byt
WHERE AES_DECRYPT(mesto, klic) LIKE 'Praha%'
takže si dobře rozmysli, co skutečně je tajné a musí bejt nutně zašifrovaný a ostatní nech radsi plaintext
a taky tu vidis, ze zapracovat neco takoveho do frameworku Doctrine, aby se vsude (de)sifrovalo, kdekoli se s tim sloupcem pracuje (podminky, joiny, group by a tak), neni jen tak to zasifrovat a hotovo
jo ještě ...
vypada to, ze vsechny ty bundly jen zasifruji pred ulozenim a desifruji po vyselectovani ... žádná plnohodnotná transparentní práce se sloupcem .... otazka je, jestli by to vubec slo stoprocentne naimplementovat do vsech featur Doctrine a kolik by to dalo prace
takze pokud chces sifrovat vsechno, tak urcite transparentne na administrativni urovni mariadb
a pokud jen treba heslo a rodne cislo uzivatele v tabulce users, tak nejaky z tehle bundlu
https://packagist.org/…crypt-bundle
tady pisou, ze je podporovan jen Laravel ... tomu moc nerozumim ... myslim,
ze by to melo byt jedno, kdyz je to na urovni doctrine
https://github.com/…rine-encrypt
https://github.com/…rine-encrypt
pripadne se muzes vykaslat na ORM frameworky a vyrabet si sql dotazy sam a pouzivat AES_ENCRYPT/DECRYPT
Popravdě jsem z toho celého zmatený. Navíc jsem právě zjistil, že
vlastně používám celou dobu MariaDb a nikoliv MySql
Sepíšu si to:
Šifrování před zápisem nebo po čtení dat z databáze nepoužiji. Při větším množství by šlo o časově náročné operace. Navíc bych při psaní kódu mohl vytvořit mnoho potenciálních rizik.
Na úrovni db dotazů také ne. Resp. ne nyní Musel bych se v Symfony dost
vrtat, a i když nepochybuji o tom, že by mi to dalo mnoho, aktuálně hledám
rychlé a funkční řešení. Možná nakonec zkusím stáhnout framework.
Psát vlastní dotazy se mi už kvůli sql injection a zas další práci také
moc nechce.
Každopádně jsem právě našel MyDiamo, což vypadá jako velmi solidní nástroj. Až se
zas dostanu k pc, zkusím implementovat a napíšu výsledek
To Mydiamo vypadá zajímavě, o to víc, že to valí na různých databázových platformách
Zobrazeno 8 zpráv z 8.