Monthly Archives: February 2008

MIME Parsing

Čo je to MIME

MIME (Multipurpose Internet Mail Extensions) je spôsob zakódovania viacerých dokumentov do jednej správy. Najčastejšie sa používa v e-mailoch a v HTTP komunikácii. V HTTP je to pri odosielaní určitého formátu formulárov, ktorý je (v súčasnosti) nutné použiť pri uploadovaní súborov. Pri odosielaní takéhoto formulára tvoria jednotlivé položky formulára (vrátane súborov) spomenuté dokumenty, ktoré sa pomocou MIME spoja do jedného, ktorý sa následne odošle.

Drvivú prevahu má však používanie MIME v e-mailovej komunikácii, kde sú ním kódované prakticky všetky nie-čisto-textové správy. Tieto obsahujú prílohy alebo alternatívne zobrazenia správy (text vs HTML). MIME zároveň poskytuje spôsob, akým sa môžu jednotlivé zakódované dokumenty na seba odvolávať.

Ako na MIME

V prvom rade musíte zistiť, či je spracúvaný dokument v MIME formáte. V HTTP aj mailovom protokole (konkrétne vo formáte e-mailových správ) sú použité headery +- rovnakého formátu, preto budem hovoriť o oboch naraz. Dokument by mal mať nastavený header Content-Type (pozor, názvy headerov sú case-insensitive) a ak je tento header nastavený na multipart/*, pracujete s MIME dokumentom. Potom v tomto headeri musíte nájsť aj hodnotu boundary, ktorá je vlastne oddeľovačom jednotlivých častí MIME dokumentu.
Read more »

4 monitory – dá sa

Pri mojej práci som si natoľko navykol na dvojmonitorový layout, že som už bez neho nemohol žiť. Trochu mi ale vadilo, že doma mám k 19″ Aceru iba starý 15″ Hansol. Rozhodol som sa teda, že za 15″ zoženiem náhradu. Nakoľko sa mi veľmi ľúbi CrystalBrite (Acer technológia, monitor má lesklý povrch a kvalitné zobrazenie farieb aj napriek použitej TN technológii TFT), znova som vyberal z ich produktov, a našiel som sympatický 22″ Acer P223W hlavne za sympatickú cenu. Zároveň ma napadlo nevyhodiť starý monitor, ale skúsiť si kúpiť naňho nejakú starú PCI kartu, ktorá by stačila na nejakú konzolu, file manager alebo niečo hlavne graficky nenáročné. Našiel som Radeon 7000 PCI za ~ 800Sk, čo sa mi zdala byť dobrá voľba, vzhľadom k tomu, že som ani nevedel, či dokáže Windows pracovať s dvoma grafickými kartami (nespojenými cez SLI alebo CrossFire).

Monitor aj grafická karta mi došli do práce a ja som nemohol odolať pokušeniu ich hneď vyskúšať. Chyba, ako som sa okamžite zaľúbil do používania dvoch monitorov, tak sa stalo aj teraz s troma a môj nový Acer som si nechal v práci. No v nej mi hrozili, že mi zoberú jeden z pôvodných monitorov, lebo akurát nechceli nakupovať nové pre nových kolegov. Táto hrozba ma strašila a tak som si zadovážil ďalší, rovnaký Acer, aby mi aj naďalej zostali aspoň tri monitory, no hrozba nakoniec ustúpila a na mojom stole zostali monitory štyri.

Moje miesto

Spočiatktu som sa bál, či staručká Radeona 7000 zvládne rozlíšenie 2960×1050 (skoro), ale skúsil som, a na bežnú prácu jej výkon stačí. No a celkové rozlíšenie niečo pod 5920×1050 zsasa stačí všetkým mojím programom, aby som stále nemusel minimalizovať okná (pravidelne mám otvorené Visual Studio – cez ľavé dva monitory, PowerDesigner, SQL Studio, 2x browser, MSDN a celkom často medzi nimi musím prepínať). A áno, tie 4 monitory niesú nutnosťou, ale je to pohodlné ;-) .

Cvičenie na JavaScript #2

Ak bolo pre Vás posledné cvičenie z JavaScript-u sklamaním, toto Vám ho iste vynahradí. Nezľaknite sa ale z počiatku zložitého kódu, isto ľahko prídete na to, čo máte spraviť.

Task nájdete tu, výsledkovú listinu tu. Ak sa chcete zapísať do výsledkovej listiny, prečítajte si tiež o cvičeniach.

Cvičenie na JavaScript #1

Síce to tak z úvodnej úlohy vyzerať nebude, ale aj JavaScript-om sa dajú zabezpečiť informácie na stránkach. Tu platí viac ako kde inde, že prvé cvičenie je iba ľahkým úvodom.

Takže, riešiť môžete tu, odpoveďový formulár nájdete tu.

Cvičenie na SQL injection

Tak je tu ďalšie cvičenie, tentoraz na SQL injection. Task vyriešite tu, odpoveď si môžete overiť v zozname riešiteľov.

Stránka ponúka zopár hintov, ktoré Vám pomôžu task vyriešiť, treba ich len nájsť, n-joy.

Ak ste registrovaní na mojom blogu a prihlásení cez prihlasovací formulár na cvičenia, tak sa zadaním správnej odpovede do zoznamu riešiteľov dostanete do výsledkovej listiny.

Programátorské cvičenie #2

Ďalšia úloha z programovania bude o poznanie ťažšia, za úlohu v nej máte nájsť konvexný obal bodov zobrazených na vygenerovanom obrázku. Konvexný obal je n-uholník, ktorý vo svojom obsahu obsahuje všetky zobrazené body, a jeho každý uhol je menší ako 180 stupňov. Zároveň množina jeho vrcholov je podmnožina bodov, ktorým je konvexným obalom. Úloha môže byť ťažšia aj z toho ohľadu, že obrázok má rozmery 3500×3500 pixelov, a je na ňom náhodne rozmiestnených medzi 1000 a 2000 bodov. Napriek o poznanie vyšším číslam ako v predchádzajúcej úlohe je táto riešiteľná v časovom intervale 5 sekúnd (na mojom počítači som neoptimalizovaným algoritmom v C# riešil za 5 sekúnd 100 zadaní) [Pozn: Po niekoľkých dňoch task stále nevyriešil ani jeden registrovaný užívateľ, rozhodol som sa teda predĺžiť časový interval určený na odpoveď na jednu minútu.]

Read more »

Programátorské cvičenie #1

V následujúcej úlohe už budete musieť aj programovať, a to hlavne z toho dôvodu, že na splnenie úlohy máte 3 sekundy. Preto je potrebné, aby úlohu za Vás riešil Vami napísaný program.

Read more »

Zabezpečenie veľmi citlivých údajov vo webovej aplikácii

Pred nedávnom som bol postavený pred úlohu vytvoriť časť webovej aplikácie, v ktorej si užívatelia môžu ukladať privátne informácie, aby ich mohli v budúcnosti pohodlnejšie na danom portáli použiť. Nakoľko ide o veľmi citlivé údaje, nechceli sme údaje ukladať do databázy v plaintexte. Nakoniec sa mi podarilo vytvoriť riešenie, pri ktorom sú splnené následovné kritériá:

  • Údaje v databáze sú šifrované
  • Kľúč k dátam je nielen iný pre každého užívateľa, ale aj pre každú jeho informáciu
  • Informácie je možné rozšifrovať práve vtedy, keď je užívateľ prihlásený, a práve vtedy, keď sa spracúva jeho request

Ako sa mi to podarilo sa môžete dočítať vo zvyšku článku.

Read more »

Úvod do steganografie

Ako prvé cvičenie zo steganografie som vybral veľmi jednoduchý príklad. V priloženom obrázku sa nachádza nejakým spôsobom zakódovaná tajná správa. A Vašou úlohou je nájsť ju.

Šifry v 19. storočí

Tak dnes už sa posunieme do 19 storočia, kedy si ľudia zasa mysleli, že neprekonateľná šifra je na svete.

Pre istotu uvediem dlhší šifrovaný text, aby sa dal jednoduchšie zriešiť.

A ako predtým, hinty a hint requesty môžete písať do fóra alebo PM.

Read more »