Infoshow: PHP

Nors InfoShow jau vyko gerą savaitę, tačiau iki šiol jūsų ištikimasis žurnalistas tingėjo pajudinti subinę ir apie tai jus informuoti (na, matyt, netoks jau ir ištikimas). Taigi, negrybaujant, labai toli kol dar grybų nėra, norėčiau jus visus informuoti apie įvykusią PHP konferenciją.

Žinodamas kiek žmonių užsiregistravo į konferenciją, nelabai tikėjausi gauti sėdimą vietą, bet man pasisekė, ypač, kai dar atėjau vėluodamas.

Pirmasis pranėšėjęs Justinas Liubinskas pasakojo apie PHP saugumą. Iš tikrųjų kalbėjo labai daug. Jeigu tiksliau - tai visą valandą, gerokai per daug. Ką aš jam galėčiau pasakyti: žmogau, tu esi tikras kileris. Kai aš prisimenu ankstesnę vykusią konferenciją, joje apie saugumą pasakojo Linas Gricius, jis nesistengė aprėpti visų pasaulio problemų, o apžvelgė tik kaikurias, jo nuomonę svarbesnes. Kiek aš prisimenu man Lino pasakojimas patiko labiau. Galbūt Justinas yra geras saugumo specialistas, bet jo monotoniškas pasakojimas tikrai daugelį varė į kapus. Ateityje siūlyčiau apriboti, labai apriboti laiką, temų kiekį, papasakoti daugiau pavyzdžių, galbūt įterpti vieną kitą anekdotą.

Neskaitant to, kad daug kas buvo žinoma (niekaip nesuprantu, kodėl visi joja ant to register_globals ir praėjusioje ir šioje konferencijoje, čia jau darosi vos ne toks legendinis klausimas kaip „Ar paksas kaltas?“) buvo ir vietų, kurios man patiko. Ypač norėčiau akcentuoti dvi, visų pirma - tai daugelis turbūt jau girdėjo, jog md5 yra nulaužtas ir nebesaugus kodavimo algoritmas, tačiau jo saugumą galima padidinti, kaip pats pranešėjas išsireiškė „naudojant druską“. O kalbant kitais terminais tiesiog pridedant papildomus žodžius prie slaptažodžio md5($salt.$password.$salt), Aišku, svarbu nepamiršti ir tikrinant slaptažodį pridėti tuos žodžius. Jeigu toks saugumas netinka, tai galima koduoti md5 ir sha1 algoritmais kelis kartus. Na, o jeigu esate visai paranojikas, tai galima įsidėti papildomas PHP bibliotekas suteikiančias priėjimus prie gausesnio kodavimo algoritmų pasirinkimo.

O antroji kas man patiko tai riboti vartotojo prieinančio prie duomenų bazės teisias, kaip aš supratau, paliekant tik INSERT ir UPDATE operacijas. Operacijos DELETE galima atsisakyti pridedant papildomą lauką, kuris žymi ar įrašas yra ištrintas (0 arba 1) ir jeigu jis ištrintas tai jo nerodyti. Čia ta proga prisiminiau FoxPro duomenų bazę, joje kai įrašas ištrinamas tai, jis nebūna fiziškai pašalinamas iš bazės, bet tik pažymimas, kaip ištrintas.

Justinas dar paminėjo, kad galima įsidiegti ctype_* funkcijas, kurios labai patogios tekstų tikrinimui (filtravimui), bet problema ta, kad jis nepaminėjo nei konkrečių funkcijų, nei konkrečių privalumų. Norėčiau pasakyti, jog čia bereikalo pranešėjas pasikuklino, manau, jog tos funkcijos būtų įdomios ne man vienam.

Artūras Paleičikas pratęsė kolegos temą ir padarė tikrą šou. Jis teigė, kad Lietuvos kompanijos, tiesiog štampuoja klaidas ir visiškai nesirūpina saugumu. Norėdamas parodyti, kad jo žodžiai nėra iš piršto laužti, jis tuoj pat pateikė pavyzdžius ir salėje nuskambėjo juokas. Jis išbandė iPyramid, EasyWeb, SmartWeb, OptimalSite . Visos šios sistemos buvo nulaužtos pasinaudojant labai paprastu būdu t.y. įkeliant PHP failą, kurio turinys yra echo „hello world“. Visų pirma, pranešėjas pasiūlė nesuteikti klientams administratoriaus teisių bandant sistemą. O antras dalykas yra, beabejonės, apriboti įkeliamų failų tipus, juk žmogus užsisakinėjantis TVS tikrai neįkėlinės PHP, PERL ar kitų web programavimo kalbų failų. Jeigu su jais mokėtų dirbti, tai nepirktų kreivo TVS. Be to darant tikrinimą negali žinoti ar failas yra .php ar .pHp ar dar kaip nors kitaip, šitą labai dažnai žmonės pamiršta. Pranešėjas nepaminėjo, todėl aš pridėsiu nuo savęs, kad darant tokias apsaugas reiktų pasikonsultuoti su strtolower() PHP funkcija.

Kiek kitoks buvo Gauminos sistemos nulaužimas, čia jau kalta ne sistema, bet jų naudojamas FCK Editor, kurio versiją kūrėjai patingėjo atnaujinti, o senos sistemos – žinomos saugumo spragos... Galutinės išvados tokios, jeigu nori kontroliuoti saugumą, turi išmanyti pilnai visus savo naudojamos sistemos komponentus

Po trumputės pertraukėles, kurios metu žiūrovų skaičius sumažėjo du kartus, konferenciją tęsė Laurynas Karvelis pasakodamas apie AJAX. Jis apžvelgė AJAX atsiradimo istoriją, čia reiktų visiems pasakyti, jog neapsigaukit Asynchronous JavaScript and XML nėra koks nors naujas dalykas, jam jau 10 metų, tačiau pats tas terminas buvo pritaikytas ir oficialiai pradėtas naudoti tik prieš kokius 1,5 metų. Taip pat paminėjo du privalumus - interaktyvumas ir portabilumas bei du trūkumus – nėra labai draugiškas vartotojui, todėl reikia papildomai įdėti pastangų pranešant vartotojui, jog kažkas vyksta, o antrasis trūkumas – javascript, nors pagrindinės naršyklės ir palaiko jį puikiai, tačiau yra dar daugybė naršyklių, kurios nepritaikytos, o taip beabejonės prarandami klientai. Ką aš galiu pasakyti šiuo klausimu? Na, kuklus tas mūsų žmogus Laurynas – privalumų beveik nėra, trūkumų irgi. Jeigu būtų labiausiai pasistengęs manau, vien iš privalumų ir trūkumų sąrašo būtų galima visą pranešimą padaryti. Jis taip pat išnagrinėjo vieną pavyzdį, bet ką aš galiu pasakyti, kai sėdint gale nieko įžiūrėti negalėjau? O pristatymą pabaigė išvardindamas visą gausybę AJAX framework‘ų.

Darius Tumas jau nepirmą kartą pasakojo apie PHP projektų planavimas. Reikėtų pastebėti, kad žmogus nuo paskutiniosios konferencijos gerokai patobulėjo BET... Jis užsiminė, jog dabar kuria buhalterinę programą su php (neįsižeisk, Dariau, bet ant kiek turėtum būti mulkis arba savižudis kad imtumeisi daryti buhalterinę programą ir dar su php!). Iš tikrųjų, kai pagalvoji, tai kokio velnio aš mokausi universitete, jeigu vienas žmogus per pusią valandos sugeba papasakoti įdomiai, tai ką universitetas nesugeba per visą kursą? Deja, tai tik optinė apgaulė ir kuo toliau tuo labiau matėsi, jog jam trūksta teorinių žinių, kurias aš jau ne vieną kartą išklausiau universitete. Tai ypač gerai pasimatė, kai teko atsakinėti į interneto žiūrovų klausimus, tai buvo kaip smūgis žemiau juostos. Taip pat man nepatiko, kad į pabaigą savo pranešimo jis net pradėjo keiktis. Na, tarkim tarp savų, gal ir galima keiktis, bet oficialioje konferencijoje reiktų valdytis.

Tačiau labiausiai mane užmušė jo gale pasakyti žodžiai: „jeigu gali neprojektuoti, tai neprojektuok“, kitaip sakant venk projektų vadovo darbo, kaip katė ugnies. Gal tu Dariau, ir ruošiesi visą gyvenimą būti juodadarbiu koderiu, bet šito aš nelinkėčiau niekam ir siūlyčiau kiekvieną atsiradusią progą bandyti tapti projektu vadovu ir palypėti karjeros laipteliais į viršų.

Šį kartą, vedėjai labai pasikuklino skirdami pietų pertraukai, tik pusią valandos, todėl aš grįžti nespėjau. Tikiu, kad Emilis Dambauskas yra geras pranešėjas ir jo pranešimas buvo įdomus, bet per pusią valandos savo darbų susitvarkyti nespėjau, taip kad teko šį pranešimą praleisti. Jeigu kas girdėjot papasakokit ką įdomaus praleidau.

Grįžau, kaip tik, kai Juozas Šalna pradėjo pasakoti apie kešavimo strategijas. Visų pirma reikia suprasti, kad visko keštuoti neapsimoka, kešuojami tik tie duomenys, kurių generavimas trunka ilgai, arba jie naudojami labai dažnai. Pranešėjas aptarė kešavimo būdus, strategijas, atkreipė dėmesį į problemas. Yra labai daug framework‘ų, kurie teigia, kad užtikrina kešavimo galimybę, tačiau tik nedaugelis turi failų rakinimo („lokinomo“, kaip išsireiškė pats autorius) mechanizmus. O kur čia problema? Įsivaizduokit, kad atnaujinote puslapį, išvalėte atmintį ir naktį užklydo koks nors vargšas lankytojas kuriam visą tą puslapį turi sugeneruoti (čia netikėtai iškilo man klausimas, o kas būtų jeigu vartotojas, nesulaukęs kol sugeneruos puslapį, jį uždarytų?). Paprasta situacija viskas aišku, o kas būtų jeigu vienu metu užeitu du žmonės? Jeigu nėra rašymo į failą draudimo, kol kitas rašo, tai gaunasi belekas ir visiškai neaiškų ką pamatys kiek vėliau atėję lankytojai. Taip kad naudoti kešavimą reikia protingai.

Na ir pagaliau į sceną išėjo paskutinis pranešėjas Artūras Šlajus. Mes labai džiaugėmės jį matydami, bet visai ne dėl to ką jus galėjote pagalvoti (kad ir ką jus pagalvojote), tiesiog jis buvo paskutinis pranšėjas ir dar ką nors išklausyti jėgų nelabai buvo likę.

Artūras pabandė įtikinti, jog Prado framework yra nuostabus dalykas. Jo nuomone tai revoliucinis požiūris į PHP. Jis Prado palygino su .Net framework‘u (tiesa, vėliau prisipažino, kad nėra programavęs .NET‘u ) ir teigė, jog tai vienintelis įvykiais grįstas modelis. Prado framework‘e visas puslapis yra forma ir viskas yra perduodama POST metodu, tuomet variklis pasižiūri kokie komponentai pasikeitė ir atvaizduoja visą puslapį. Nors Artūras ir dėjo dideles pastangas mums įtikinti koks „krūtas“ daiktas yra Prado, vis tik daugelis tuo nepatikėjo. Nors dėl vieno dalyko visi sutiko, galimybė nesudėtingai paversti parasta PHP saitą į AJAX ir atvirkščiai yra tikrai nuostabus dalykas.

Apibendrinant reiktų pasakyti, jog tai buvo nuostabus renginys. Šį karta nebuvo pavargusių, ir visi pranešėjai pasirodė neblogai. Bet reiktų duoti keletą pastabų dėl video transliacijos. Nors aš pats nežiūrėjau, bet kiek supratau per transliacija tarsi per kokai Panorama, žiūrovai galėjo matyti, tik vedančiojo snukį, o skaidrių nematė, nežinau ar jiems gerai pavyko suprasti kas aiškinama (tie kas žiūrėjot galėtumėte pasidalinti įspūdžiais), bet mano nuomone tai turėjo būti gana sudėtinga ir neįdomu.

Iš tikrųjų šį rašinį jums jau norėjau pateikti vakar, bet po sunkaus „afterparčio“ įpusėjus šį darbą netik galva atsisakė kūrybiškai mąstyti, bet ir rankos suvedinėti tekstą. Jeigu jau užsiminiau apie „afterparty“ tai reiktų kažką pakomentuoti: 1) Užsisakę didelę picą ir ją pamatę žmonės gerokai nustebo, nes ji iš tiesu buvo milžiniška( ~50cm). 2) Nežinau kokiam galui buvo reikalingas fleimas, kuri naršyklė geresnė. Laimėjo Internet Explorer. Juokauju, atlikus paklausa paaiškėjo, jog 6 žmonės naudoja FF ir tik 3 Opera, IE nenaudoja niekas. 3) Niekaip nesuprantu, kas atsitiko su bankomatais prie fontano (Laisvės Alėjoje) Vilniaus banko yra, Snoras yra, net Sampo yra, bet arti rasti HansaBank bankomato nepavyko. (Jeigu kas radot pasiklydusi bankomatą informuokit) 4) Kai kurie žmonės perdaug ilgai praleidę laiko be kompiuterio pradėjo rašyti kodą ant servetėlių. Rodos ir viskas ką vertėjo paminėti. Dėkui piliečiams, kurie parvežė namo.

Brukštelk žinutę