Michal Čihař - Blog Archives for phpMyAdmin

Bezpečnost webových aplikací

Na bezpečnostním mailing listu phpMyAdmina se objevil nějaký etický hacker a začal trochu šťourat do našeho kódu, což je jenom dobře :-). První výsledky tohoto šťourání už přinesla verze 2.11.7.1 , ale s většinou změn přijde až 2.11.8.

Kromě spousty určitě užitečných připomínek, ale přišel i s jedním kontroverzím nápadem a to znemožnit potenciálnímu útočníkovi zjistit o jakou verzi phpMyAdmina jde. Kromě toho, že samozřejmě pořád bude existovat dostatek starých verzí, které to o sobě řeknou, tak to stejně jenom zavání security by obscurity. Nicméně to ale může útočníkovi trochu zkomplikovat život. Na druhou stranu schování těchto informací je práce navíc a vynutilo by si odstranění textového ChangeLogu.

Co si o tom myslíte vy? Má smysl skrývat jakoukoliv zmínky o tom o jakou verzi se jedná (včetně například ChangeLogu) před nepřihlášeným návštěvníkem?

Objev týdne: Salamandra

Hlasujte pro phpMyAdmina v Hackontestu

phpMyAdmin si zatím drží třetí místo, které zajišťuje účast v programátorské soutěži Hackontest , která se koná koncem září v Curichu. Během 24 hodin budou tři vybrané týmy implementovat vlastnost, kterou si uživatelé budou nejvíce přát. Hlasujte tedy pro to, co vám v phpMyAdminovi nejvíce chybí. Více informací na http://www.hackontest.org .

Two phpMyAdmin projects in GSoC 2008

Well I did not expect that much when MySQL offered us to piggyback on their participation in GSoC 2008, but at the end we have two projects. One is about blobstreaming which I absolutely don't know and is probably some amazing new technology :-). Marc will act as a sponsor on this together with some guys from http://www.blobstreaming.org.

The second project is setup rewrite where I will act as a mentor and Piotr Przybylski will implement it. Hopefully we will bring this to successful end and soon phpMyAdmin will bring you easier way to set up and configure it's options.

Zmatení z Czech Open Source

Když jsem dneska viděl anketu na rootu , na první pohled jsem si myslel, že se někdo zbláznil a dostaly se tam dva projekty na kterých dělám - Wammu a phpMyAdmin . Po bližším zkoumání se ukázalo, že tam mám jenom jeden a phpMinAdmin opravdu není phpMyAdmin, jak si zabudovaná oprava překlepů v mozku původně domyslela.

Když si vzpomenu, kolik open source projektů muselo změnit jméno kvůli podobností názvu s nějakým komerčním produktem, tak si říkám, jak by to dopadlo tady (ne že bych měl něco takového v plánu). Ale stejně by mě zajímalo kolik lidí si to splete a bude si myslet, že hlasují pro phpMyAdmina :-).

PS: Jinak samozřejmě hlasujte pro Wammu, ať taky něco vyhraju (i když vůbec netuším co že tam projekty mají vyhrát :-)).

Similarity in project names

While looking at poll about Czech open source for first time, I was surprised that two of my projects got in - phpMyAdmin and Wammu. After looking again at that page I noticed there is a typo in phpMyAdmins name, it was written as phpMinAdmin. Then I looked even more carefully and even URL it is pointing to is something different. In this time I realized that it is something completely different with just very similar name. phpMinAdmin is some minimalistic clone of phpMyAdmin, but why they could not choose a bit more different name?

PS: Anyway you can still vote for Wammu in Czech open source :-).

phpMyAdmin is in Summer of Code

Well not directly, but MySQL is and they will also accept our projects. So if you are student interested in getting some money for improving free software, you're welcome to contact us. We have written down our ideas to wiki, but feel free to come with your own thought. But don't forget that deadline is this Monday!

While talking about this improving phpMyAdmin, phpMyAdmin team would also like to take part in Hackontest, so vote and suggest there features for us! If you have no idea for phpMyAdmin, Debian is also taking part there ;-).

Summer of code 2008 s phpMyAdminem

Přestože phpMyAdmin nebyl vybrán mezi projekty účastnící se Google Summer of Code , díky kolegům z MySQL se projekty na vylepšení phpMyAdmina mohou této akce zúčastnit. Pokud tedy studujete a chcete si přes léto přivydělat peníze pomocí phpMyAdminovi, můžete inspiraci čerpat z  našich nápadů na vylepšení , nebo přijít z vlastním nápadem. Nabídka od MySQL přišla na poslední chvíli, tak se rozmýšlejte rychle, poslední šance na odeslání přihlášek do Googlu je 7. dubna.

phpMyAdmin se přihlásil do Hackontestu

Tým phpMyAdmina by se rád zúčastnil programátorské soutěže Hackontest , která se koná koncem září v Curichu. Během 24 hodin budou tři týmy vybrané komisí implementovat vlastnost, kterou si uživatelé budou nejvíce přát. Pokud chcete pomoci phpMyAdminovi se účastnit na této soutěži, navrhujte nebo hlasujte pro nové vlastnosti phpMyAdmina na http://www.hackontest.org .

Aktualizována kniha o phpMyAdminovi

Anglická kniha o phpMyAdminovi byla aktualizována pro současnou řadu phpMyAdmina – 2.11. Pokud vládnete angličtinou, tak pro vás může být ideálním zdrojem informací. Zakoupením této knihy přispíváte i přímo projektu phpMyAdmin! Více informací o novém vydání naleznete na stránkách vydavatelství .

Import dat

Občas do databáze potřebujeme také nahrát data získaná v jiných programech. I pro tuto možnost phpMyAdmin nabízí podporu ve svém rozhraní, ale pokud budete potřebovat pracovat s většími objemy dat, je lepší použít některé nástroje pro příkazovou řádku.

Množství formátů pro import není ani zdaleka tak rozsáhlé jako u možností pro export  – phpMyAdmin podporuje import jen pro CSV, SQL a DocSQL soubory. Stejně tak jako u exportu ale máte možnost si napsat vlastní modul pro práci s vaším souborovým formátem, rozhraní pro moduly je podobné jako u  exportních modulů .

Omezení

Protože zpracování dat dochází na straně web serveru a data jsou přenášena přes HTTP, může u velkých objemů dat dojít k vypršení různých časových limitů. Limit běhu PHP (pokud to nastavení PHP umožňuje, například v safe mode to není možné) můžete nastavit pomocí proměnné $cfg['ExecTimeLimit'] . Nastavením na nulu omezení doby času běhu PHP odstraníme úplně. Nicméně pořád ještě může vypršet časový limit HTTP přenosu, který nemůžeme nijak ovlivnit.

Další omezení je velikost nahraného souboru. Toto upravují parametry upload_max_filesize a post_max_size v nastaveních PHP (soubor php.ini nebo případně .htaccess s lokálním nastavením pro některé adresáře). Oba tyto parametry omezují maximální velikost souboru, který lze na server nahrát. Vše výše zmíněné předpokládá povolení nahrávání souborů pomocí direktivy file_uploads .

Poslední omezení na které můžeme narazit je velikosti použité paměti. To je možné opět nastavit v phpMyAdminovi pomocí proměnné $cfg['MemoryLimit'] .

Jak zpracovat velké soubory

Pokud přes phpMyAdmina potřebujeme pracovat s velkými soubory, máme přes popsaná omezení několik možností.

Nejpohodlnější je nahrát soubor na server jinou cestou a v phpMyAdminovi povolit načítání souborů pro import ze serveru:

 
  $cfg['UploadDir'] = './upload';
 

Nyní nám phpMyAdmin nabídne na stránce pro import i soubory uložené v tomto adresáři a tímto se vyhneme problémům s HTTP přenosem. Ale pořád zůstávají omezení na spotřebovanou paměť a dobu běhu PHP.

Tyto omezení můžeme obejít částečným importováním souboru dokud ho nezpracujeme celý. Pokud je povolen částečný import phpMyAdmin se snaží předem detekovat situaci kdy by došlo k dosažení těchto limitů a pokud toto hrozí import se přeruší. Opětovným odesláním formuláře bude import pokračovat od poslední zpracované pozice. V případě že jsme soubor nahrávali přes HTTP musíme však soubor nahrát znovu.

Formáty dat

Pro všechny formáty je možné vybrat znakovou sadu, ve které je soubor a phpMyAdmin automaticky rozezná případnou kompresi souborů (gzip, bzip2 a zip, ale záleží na tom co vaše PHP podporuje).

SQL

SQL export asi není třeba rozebírat, jen je možné nastavit režim kompatibility, v jakém se bude dotaz provávět.

CSV

Do jednotlivých tabulek je možné nahrávat data z CSV souborů (tento import tedy funguje jen pro jednotlivé tabulky a ne pro celou databázi). U CSV importu je možné nastavit řadu parametrů určující jak je soubor formátován (oddělovače sloupců, řádků a podobně). Pokud to MySQL server povoluje, je možné také kromě parseru v phpMyAdminovi použít příkaz MySQL LOAD DATA . Tato volba je obvykle rychlejší, ale nenabízí tolik možností ovlivnění běhu a v některých konfiguracích MySQL serveru ji nelze použít.

DocSQL

Toto je dnes již poměrně historický formát pro popis tabulek a phpMyAdmin umí podle tohoto popisu tabulky vytvořit. Protože se jedná o vytváření tabulek, tento import je dostupný jen pro databázi.