Bezpečný web a šialenstvo okolo neho
Sobota, Jún 28th, 2008
No, možno som to s tým nadpisom prehnal, ale aspo? máme jasno v tom, že sa nechystám písať o zabezpečovaní kódu voči SQl injection, XSS a podobnej hávedi priamo ako kóder. Chcem sa na to pozrieť z troška iného uhla.
Ok… Takže som začínajúci webdeveloper, ktorý si chce zbúchať svoj vlastný webový projekt, ktorý nebude stáť už iba na HTML, ale skúsim niečo dynamické. Super vec je php. Je to ľahký jazyk so širokými možnosťami a asi nenájdem hosting, ktorý by ho nepodporoval. Ako prvú vec si naprogramuje guestbook alebo anketu, jednoduchšie fórum. Alebo využijem nejaké hotové komponenty, prípadne celý systém (framework, CMS, wordpress…). No čím viac možností, tým viac problémov. Ak mám vstupné brány do systému, musím si dávať pozor, aby mi nimi neprišlo TO, čo nechcem. Chceme ochrániť svoje dáta, máme povinnosť voči používateľovi našej aplikácie. A navyše nám môže uškodiť informácia o tom, že sme zraniteľní.
No fajn. Pri malom projekte, ktorý robíme sami sa dá dozrieť na bezpečnosť relatívne ľahko (i keď bývajú práve tieto malé projektíky najviac “odfláknuté”). Vo väčsom tíme je to už ťažšie veľmi záleží na štábnej kultúre a návykoch jednotlivých developerov. A v neposlednom rade i na ich postoji. Nejde iba o to, dokončiť projekt, ale urobiť ho kvalitne. Sú možno určité objektívne okolnosti, ktoré to sťažujú (a to nevravím čisto alibisticky), ale ruku na srdce, komu sa z nejakej “lajdáckosti” v kóde neobjavila nejaká zraniteľnosť.
Je mnoho expertov a “expertov”, ktorí vedia tieto zraniteľnosti nájsť, niektorí ich aj zneužijú. Stretol som sa s viacerými postojmi programátorov, ktorí mali veľmi vyhranený negatívny názor na takéto testovanie – možno práve kvôli tomu, že sa mi urobili chybu. Jedno ich prirovnanie vraví, že testovanie cudzích stránok je, ako keby ste chodili v paneláku od bytu k bytu a šperhákom skúšali, či sa dajú dvere otvoriť. Skúste to povedať majiteľovi bytu a budete radi, že neležíte na ARO (obzvlášť pri stave nášho zdravotníctva). Títo programátori odmietali s analytikmi komunikovať.
Potom sa dá chápať, že je analytik znechutený z programátora dvojnásobne: jednak robí chyby a ešte si za nimi stojí drzo ukazujúc na niekoho iného. Možno by však bolo užitočné zmeniť spôsob komunikácie na oboch stranách. Sám viem, že prístup nezávislého experta môže byť subjektívne vnímaný ako arogantný a nepríjemný. Potom sa vytráca chuť komunikovať.
Hmm… Čo teda robiť? Spomaliť vývoj dôkladným testovaním? Šprintovať a riskovať diery vo funkčnosti? Na to už odpovedať nebudem, je to na Vás. Ale pamätajme na to, že situáciu treba brať s nadhľadom a mať na vedomí, čo môže každý náš krok spôsobiť, aby sme potom neboli skôr na smiech. Všetkého veľa škodí – to dokumentuje aj obrázok so zobrazením ponuky pracovných miest, ktorý je veľmi, veľmi dobre ošetrený



Grafika by Števo Bačkor