WA1

Z OI wiki

Přejít na: navigace, hledání


Obsah

1. semestr 2. semestr 3. semestr 4. semestr 5. semestr 6. semestr
Povinné předměty DMA ¤ LAG
PR1 ¤ RPH
ALG ¤ BP1 ¤ LGR
MA2 ¤ PR2
JAG ¤ PSI ¤ SPS APO ¤ BP2 ¤ FYZ OPT SZZ - LS 2012
Inf. a poč. vědy NUM ¤ OSS DS ¤ FLP ¤ ZUI RPZ
Počítačové syst. EAM ¤ EM DSP ¤ OSD PKS ¤PSR ¤NVS
Softwarové syst. OSS ¤ SI ASS ¤ DS ¤ TUR WA1
Volitelné předměty ACM ¤ EPD ¤ ET1 ¤ FI1 ¤ HI1 ¤ HSD ¤ HT1 ¤ IA+AZK ¤ MME ¤ MMP ¤ MPS ¤ PAP ¤ PPR ¤ PRS ¤ RET ¤ SOJ ¤ UFI
Grafický minor

PGR ¤ MVR ¤ KMA ¤ MGA ¤ GRT

Info o předmětu

  • Přednášející: Ing. Martin Klíma, Ph.D.
  • Cvičící:


Pravidla předmětu

Odkaz na pravidla předmětu


Studijní materiály

Oficiální stránka předmětu

Semestrální práce

Knihovní systém

Zkoušky

Zkouška 20.1.2012

Zkouška 20.1.2012

Rozřazovací test (musite mit 6spravne z 10b, opravujete cizi test, doporuciji modre propisovacky s sebou a nebudte svine ;-) ):

1) Vyberte co platí o clonování v php(shallow copy pomoci __clone()) 
2) Co platí o javascriptu
(vyvolává akce, odchytává akce, přidává odebírá listenery...) neplati: manipulace se soubory na disku, manipulace s kamerou ci  mikrofonem 
3) AJAX
stav aplikace se udrzuje v DOMu, ale je lespi ho zalohovat na serverove strane
4) server s rozsirenim CGI
sdileni operacni pameti je nemozne, jelikoz kazdy skript bezi jako samostatny proces
5) CSS
sirka (plati pro jakykoliv rozmer) udana v % se pocita z absolutne vypocitane hodnoty sirky primeho predka
6) type hinting
pouze v argumentu metod


Hlavni test (max 16b):

1) Basic access authentication
jmeno:heslo zakodovane v BASE64
zakodovane ale nezasifrovane (zadna MD5, to je DIGEST)
NEnahrazuje prihlasovani pomoci cookies (tj. prihlaseni, odhlaseni, skladovani udaju o prihlasenem uzivateli) - asi proto ze neumime odhlasit uzivatele jinak nez zavrenim prohlizece
2) MYSQL
MyIsam nema transakce
InnoDB ma transakce
lze propojit tabulky ruznych typu
lze mit jine kodovani v ruznych sloupeckach jedne tabulky (v db)
3) alokace pamtei v PHP
programator se o ni nemusi starat
o alokaci pameti se stara interpretr
4) kde se posílají Cookie
pri kazdem HTTP dotazu
v hlavicce HTTP dotazu
5) konstanty v PHP a jejiech viditelnost (DEFINE, const,....)
6) jakym atributem se daji sifrovat data z formulare
nedaji (byly tam fejkove moznosti jako secure='secure', secured='secured', atd)

Implementační (9 bodů)

Implementujte MVC architekturu - formular s policky jmeno a prijmeni
- na zacatku zobraz prazdne
- predvypln pokud uzivatel zadal nejake hodnoty, ale neproslo to validaci (validace je jmeno ma delku alespon tri znaky)
- uspesne validovana data ulozte do db metodou DB::save(jmeno, prijmeni), kterou si ale musite sami implementovat (neresil presne
nazvy metod, jen obecne abyste vedeli, kdy co pripojit, napsat, ze tady by to chtelo osetrit, kdyz se nepovede pripojeni k db...)
- javascriptem osetrete, ze formular nepujde odeslat kdyz jmeno bude kratsi jak 3 znaky

zretelne oznacte ktera cast je M, ktera V, ktera C

Ustni

oblibene temata
- cachovani ve Smartym (sablony)
- web proxy (taky cachovani)
temata
- box model v CSS
- konflikty v CSS (kdo ma prednost pred kym, doporucuji Macikovy slidy ze cviceni na CSS)
- DOCTYPE, DTD, XML
- IP, TCP, UDP, HTTP
- abstraktni databazova vrstva
- sql injection, request forgery
- ...

Zkouška 18.1.2012

Rozřazovací test:

1) Vyberte co platí o clonování v php(shallow copy pomoci __clone())

2) Co platí o javascriptu(vyvolává akce, odchytává akce, přidává odebírá listenery...)

3) Co platí o odchytávání akcí


Hlavní test:

1) Kde probíhá validace ajaxu(na serveru, u clienta, neni potřeba atd...)

2) Které z následujících věcí jsou hrozba pro php (dával tam názvy neexistujících tipu SQL influence nebo Cross side script forgery)

3) Vyberte co platí o alokaci paměti v php

4) Otázka na práci php se soubory 1

5) Otázka na práci php se soubory 2

6) Popis zabezpečení Digest

7) ...


Implementační (9 bodů)


Implementujte v model view a controller pro vytahování dat z tabulky people (id firstname lastname) view mají být 2 jedno pro zadání křestního jméno podle kterého chceme vyhledávat a druhé pro zobrazení výsledků

Zkouška 4.1.2012

Moc si toho už nepamatuji, kdyžtak doplňte... --Hanx 6. 1. 2012, 17:49 (UTC)

Vstupní test ke zkoušce - 10 zaškrtávacích odpovědí, žádná nebo právě jedna správná, pro postup nutno 6 bodů z 10. Otázky byly poměrně náročné na pochopení významu (např. dvojitý zápor apod.)

  Nepamatuji si přesně obsah, ale byl to víceméně průřez všemi přednáškami na základní věci. Možná jsem něco z toho napsal k písemnému testu...


Písemný test - zaškrtávací odpovědi, žádná, jedna nebo až všechny správné, pro postup nutno 15 bodů z 25 ; některé otázky bylo nutné napsat/nakreslit a poslední otázka byla implementační.

  Testové otázky:
  1) Web Proxy -> Pracuje na aplikační vrstvě
  2) Smarty implementuje -> Pouze View
  3) Co je nutné, aby mohlo dojít k XSRF útoku
      -> Uživatel navštíví v jednom prohlížeči v tomto pořadí: napadená stránka, útočníkova stránka
      -> Napadená stránka spoléhá pouze na ověření pomocí Cookies/Sessions
      -> Klient musi mit platnou cookie s identifikatorem session napadene stranky
  4) Dotaz na implementaci komunikace PHP - DB -> Pomocí dynamicky linkované knihovny nebo přikompilovaným modulem
  5) Co zajišťuje DNS
      -> převod textového jména na IP adresu
      -> převod IP adresy na textové jméno
  6)...
  
  Dále pak nějaké otázky na PHP a JavaScript
  
  
  Psané otázky:
  1) Co je pseudotřída v CSS + alespoň jeden příklad
  2) Co je pseudoelement v CSS + alespoň jeden příklad
  3) Vysvětlete MVC v realizaci Front Controlleru + popište význam Modul a View
  
  
  Implementační otázka:
  Implmentujte zpracování formuláře (vstup: Jméno, Příjmení, Submit). Předpokládejte, že máte metody:
     * validuj($jmeno, $prijmeni) - kontroluje validitu vstupu, return boolean
     * save($jmeno, $prijmeni) - provede bezpečné uložení do DB
  
  Kontrolujte vstup formuláře, v případě špatného vyplnění formuláře se formulář zobrazí znovu se zadanými hodnotami.
  Pokud dojde k uložení, informujte o úspěšném uložení (k dispozici na thankyou.html)
  
  *zde bylo potřeba hlavně hlídat, aby jsme nevypisovali neošetřené vstupy (htmlspecialchars)...

Ústní zkouška - Pokud jste prošli písemným testem, dostali jste otázku (já za 5b - udržovací, zda si zasloužím za C). Pokud jste odpověděli správně (a chyběl vám bod do lepší známky), mohli jste si zkusit vzít další za 5b (získal jsem tak lepší známku, v případě neúspěchu bych byl na nule).

Otázku vybíral tak, že kouknul na přehled přednášek a vypral nějaké téma, někdo si téma i mohl vybrat...

Pokud byste ale měli z testu např. 17b a z ústní -5b >> 12b, zkoušku jste neudělali. Takže se vlastně výsledky z písemné a ústní sečetly a museli jste mít 15 a více bodů...

Events Upcoming
More »