Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - Filip Jirsák

Stran: 1 ... 310 311 [312] 313 314 ... 375
4666
Odkladiště / Re:Údiv nad tím, jak moc je internet hackovaný
« kdy: 24. 01. 2016, 21:37:58 »
já velmi udiven tím, kolik neustálých pokusů o kontakt zvenku se děje - zejména se jedná o telenet, http, různé icmp pakety, samba, ssh,.... hrubým odhadem tak 2x za minutu někdo/něco provede pokus o kontakt. Ani ve snu jsem netušil, že je ten provoz až takhle hustý. 
Veřejných IPv4 adres je málo, napadených a napadnutelných zařízení hodně. Útočníkovi se prostě vyplatí zkoušet náhodně generované IP adresy, protože má velkou šanci, že se trefí do aktivní adresy, a dobrou šanci, že tam bude nějaké napadnutelné zařízení. Jediné, co útočník potřebuje, je konektivita a čas nějakého zařízení, a to rád obětuje, protože to není jeho – je to konektivita a čas jím dříve napadených zařízení.

V této souvislosti se nabízí otázka - jak jsou vlastně v reálu zabezpečené takové ty domází multifunkční routery za pár stovek? :O
Pokud by to byl jen router, bylo by mu to úplně jedno –  protože tohle jsou útoky na servery, a na čistém routeru žádný server neběží. Jenže ty domácí routery toho dělají mnohem víc, obvykle se ovládají přes webové rozhraní, takže na nich běží webový server, často také mají nějaký SSH nebo Telnet server, někdy na nich běží různé další služby, o některých ani uživatel neví a o některých občas pořádně neví ani výrobce. No a s těmito službami už je to horší, ty bývají často děravé – zrovna tady na Rootu o tom vycházejí články docela často.

4667
Vývoj / Re:MVC a 3-vrstvá architektura
« kdy: 24. 01. 2016, 21:24:06 »
Lze tedy vyměnit View, aby se na základě Modelu vykresloval nějak jinak
Myslím, že více View pro jeden model je dokonce velmi běžné. Potřebujete jeden View pro editaci (formulář), a typicky budete mít jiný View pro zobrazení daného modelu (bez editace).

A to je špatně, jelikož modelové třídy popisují business entity/objekty aplikace, tak by měla být i business logika dané entity v této třídě.
Špatně by to bylo jedině tehdy, pokud byste vyžadoval přísně objektovou architekturu aplikace. Jenže tak se dneska prakticky neprogramuje, mimo jiné by vám s objektovou architekturou nefungovala spousta návrhových vzorů (třeba právě MVC nebo vícevrstvá architektura). Programuje se v objektových jazycích a pracuje se s objekty, ale architektura není objektová. Třeba právě v MVC je Model jen datová struktura bez jakéhokoli kódu (zapomeňte teď, že je to často realizováno pomocí getterů a setterů, tedy výkonného kódu – z hlediska architektury je to jen strukturovaná paměť, která neumí nic dělat, jenom si pamatuje data), View a Controller zase představují výkonný kód, který nad těmi strukturami pracuje (a často se pro ně používá anti-pattern singleton, tedy nemají žádný vnitřní stav, je to jen kód).

To je možná příčina vašeho zmatení – všude se říká, že se dnes programuje v objektových jazycích, ale už se neříká, že se sice programuje s objekty, ale objektového kódu je v aplikacích spíš menšina, většina kódu je klasicky rozdělena na struktury a výkonný kód – i když jak ty struktury tak ten výkonný kód je implementován pomocí objektů.

4668
Vývoj / Re:MVC a 3-vrstvá architektura
« kdy: 24. 01. 2016, 12:32:27 »
Myslel jsem, že typická webová aplikace se označuje za architekturu client-server. Ta se ale skládá z klienta, webového serveru a navíc databázového serveru, tedy 3vrstvá. Nebo tomu tak není? Proč?
Typické klient-server aplikace zažívaly svůj vrchol někdy před koncem tisíciletí, a byly to skutečně dvě vrstvy – klient byla třeba Windows aplikace napsaná v Delphi, která přes SQL přímo přistupovala do databáze (server). Webová aplikace určitě není typickou ukázkou architektury klient-server, protože tam těch klientů a serverů máte obvykle několik (webový server obvykle bude klientem aplikačního serveru nebo databáze). Můžete webové aplikaci samozřejmě také říkat klient-server architektura, protože tam nějaké servery a nějací klienti jsou, a abyste to odlišil od monolitické aplikace. Ale je podle mne méně matoucí držet se zažitého používání pojmů a označovat webové aplikace za vícevrstvé.



Možná je to pořád tím, že si pod každou vrstvou představuju oddělený HW...
Což je dobrá představa a myslím, že je to jednodušší pro pochopení. To, že si pak někdo nacpe webový server a databázi na jedno železo, je speciální případ. Ale když si představíte, že máte na jednom počítači webový prohlížeč, ten komunikuje s webovým serverem, který generuje HTML kód, webový server komunikuje s aplikačním serverem, kde je aplikační logika (poskytovaná přes nějaké API), a aplikační server komunikuje s databázovým serverem, máte tam krásně i hardwarově oddělené čtyři vrstvy.

Nakreslil jsem obrázek webové aplikace (tenký klient). Chápu tedy, že může být současně MVC na klientovi (asi tedy nějaký JS MVC framework) a také na webovém serveru (např. MVP Nette framework), jedná se tedy stále o prezentační vrstvu...
Ano, u čtyřvrstvé architektury, kde je tenký klient a prezentační server je oddělený od aplikačního, je prezentační logika často rozdělená mezi prezentační server a tenkého klienta. Případně může být opravdu tenký klient úplně bez logiky – to jsou klasické webové formuláře, kde něco vyplníte, odešlete na server, tam se to zpracuje a server vytvoří HTML stránku s odpovědí. Je to sice architektonicky čisté, ale odezva na každou akci uživatele pak jde přes server, což je pomalé (projevuje se tam latence sítě).

Nicméně nerozumím tomu, že Model v MVC/MVP je součástí prezentační vrstvy, když obsahuje business logiku...
Model v MVC neobsahuje business logiku, obsahuje data pro prezentační vrstvu. U klasické formulářové webové aplikace je model v podstatě to, co se odešle typicky jako obsah POST požadavku na server (ze serveru do prohlížeče to jde typicky jako součást webové stránky, tam je tedy model a view pro přenos spojeno dohromady). Nebo pokud je to webová aplikace komunikující pomocí JSON zpráv, jsou modelem ty JSON zprávy.

Když budete mít třeba webovou stránku zobrazující údaje o nějaké osobě, budete tam mít model, který bude obsahovat jméno, příjmení, datum narození, adresu. Bude obsahovat jen tahle data, logika tam nebude vůbec žádná. Případně v implementaci (nějaké PHP nebo Java třídy, ve skutečnosti jsou to ale jen struktury bez jakéhokoli výkonného kódu) tam třeba budou nějaké jednoduché validace, což je ale vlastně porušení těch klasických vrstev (protože „správně“ by validaci měla dělat až business logika na aplikačním serveru). Tenhle prezentační model se pak mezi prezentační a aplikační vrstvou překlopí na doménový model (pokud „náhodou“ nejsou stejné), a teprve nad doménovým modelem pracuje ta business logika (která třeba zkontroluje, zda daný uživatel má právu tuhle osobu editovat, ověří, že datum narození není v budoucnosti, zda nevzniká duplicitní záznam o osobě v databázi, normalizuje adresu apod.).

Zkusím to ještě popsat opačně, proč vzniklo MVC. Bez MVC můžete mít na formuláři tři políčka – pro rodné číslo, datum narození a pohlaví. Každé to formulářové políčko si pamatuje svou hodnotu, a pak musíte naprogramovat chování pro ta jednotlivá políčka. Když uživatel změní rodné číslo, zkontrolovat jeho formát, vypočítat datum narození a zapsat ho do příslušného políčka, vypočítat pohlaví a zapsat ho do příslušného políčka. Když uživatel změní datum narození a je vyplněno rodné číslo, zobrazit dotaz, že se pravděpodobně jedná o cizince bez rodného čísla, a zda chce rodné číslo vymazat. Pokud zvolí, že ne, vrátit datum narození na hodnotu vypočtenou z rodného čísla. Když ale vymažete rodné číslo, nesmíte zapomenout i vymazat pohlaví. A takhle se to postupně řetězí a při každé změně v nějaké komponentě na formuláři musíte myslet na to, co všechno to může ovlivnit jinde. Pak třeba k políčku pro zadání data narození přidáte tlačítko pro výběr z kalendáře, a musíte zajistit, aby se ty dva údaje synchronizovaly a při změnách v kalendáři se provádělo to samé, jako při změnách v textovém políčku. Postupně tak z toho vznikne dlouhý kód plný různých ifů, logika se tam duplikuje a za chvíli se to celé bude chovat zmateně (třeba když změníte dvě hodnoty v jednom pořadí, bude na nějakém třetím políčku výsledek jiný, než když je změníte v obráceném pořadí).

Proto vzniklo to MV, kde máte to zobrazení (view) a model oddělené. Prostě jenom řeknete, že v tomhle políčku je datum narození, a nemusíte v pohledu řešit, co se má stát při jeho změně a kdy se má naopak aktualizovat – protože o to se stará model. Samotné MV by pak stačilo pro jeden formulář, jenže typicky jich máte víc a potřebujete určit, že když aplikační logika zjistila, že je v datech něco špatně, má se zobrazit zase ten původní formulář se změněnými údaji a validační hláškou, ale když aplikační logika data zpracovala (a třeba uložila do databáze), má se uživateli zobrazit jiná stránka třeba s poděkováním za registraci. A to řeší C – controller.

V tom případě, který jsem popsal, je opravdu část té business logiky (jaký je vztah mezi rodným číslem, datem narození a pohlavím) vytažena až k tomu modelu v MVC, ale to neznamená, že je to architektonicky součástí modelu. Architektonicky čisté by bylo vzít ten model z prezentační vrstvy, odeslat ho na aplikační server, tam třeba z toho rodného čísla vypočítat datum narození a pohlaví a odeslat to zpátky na klienta. Jenže za to vám uživatel nepoděkuje, když na to bude muset čekat a za tu dobu by to datum narození napsal sám.

4669
Vývoj / Re:MVC a 3-vrstvá architektura
« kdy: 24. 01. 2016, 08:37:39 »
MVC a n-vrstvá architektura spolu vůbec nesouvisí. A 3-vrstvá architektura se nepoužívá u aplikací typu klient/server, protože aplikace typu klient/server jsou 2-vrstvá architektura. 3-vrstvá architektura má tři vrstvy – původně to byly vrstvy (tlustý) klient, aplikační server a databázový server. Dnes se ale často používá architektura s tenkým klientem, kde se logika tlustého klienta z části nebo úplně přesouvá na aplikační server. Případně z toho může vzniknout 4-vrstvá architektura, kde se aplikační server stará opravdu jen o aplikační logiku (jsou to nějaké služby, se kterými je možné komunikovat jen pomocí definovaného API) a přibyde prezentační server, který se stará o generování typicky HTML pro tenkého klienta.

MVC je pak způsob, jakým se řeší klient. V případě tlustého klienta je zcela na vrstvě klienta, v případě řešení s tenkým klientem se může použít tam, kde je logika klienta – pokud se použije tenký klient opravdu jen jako hloupý zobrazovač a veškerá logika klienta je na aplikačním serveru, bude MVC jedině na aplikačním serveru. Pokud je nějaká logika i na „tenkém“ klientovi, je logika klienta rozdělena mezi toho tenkého klienta a aplikační server a MVC pak může být na obou. Každopádně celé MVC je vždy na jedné vrstvě aplikace – i pokud budete mít logiku klienta částečně v tenkém klientovi a částečně na prezentačním (nebo aplikačním) serveru, a na obou stranách bude MVC, budou to dvě oddělená MVC, která spolu nějakým způsobem komunikují.

Ve vašem obrázku to máte špatně, protože model z MVC je součástí prezentační vrstvy a je to prezentační model – který může a nemusí mít stejnou strukturu, jako model na aplikační vrstvě. V klasické třívrstvé aplikaci můžete mít vedle sebe tři různé modely – na nejnižší vrstvě model relační databáze, na aplikační vrstvě doménový model (a mezi těmi dvěma modely překlápí typicky ORM), na prezentační vrstvě pak prezentační model (ten, který je součástí MVC).

4670
Sítě / Re:Ztráta paketů
« kdy: 23. 01. 2016, 16:36:49 »
Takže problém je někde uvnitř v síti ISP. Zkuste ještě ping s velikostí paketů třeba 1400 bajtů (aby se to blížilo k maximu) a interval nastavte třeba na 5 sekund, např. na Linuxu:

Kód: [Vybrat]
ping -n -i 5 -s 1400 bgp1.sprintel.cz | tee ping-bgp1-sprintel-cz.log
ping -n -i 5 -s 1400 10.0.?.? | tee ping-10-0-x-x.log

Výstup nechte zapsat do souboru a nechte to běžet třeba půl hodiny v době, kdy zaznamenáte problémy. Spusťte vedle sebe takovýhle ping na ten bgp1.sprintel.cz (kde se packet loss projevuje) a na tu IP adresu 10.0.?.?, což je předpokládám WiFi AP, na které je připojen WiFi klient u vás na střeše. V tom prvním logu by měl být vidět packet loss a v tom druhém ne, a pokud to tak bude, ukazuje to na problém v síti ISP. Pak ten problém reklamujte u ISP a ty logy mu předložte.

4671
Sítě / Re:Ztráta paketů
« kdy: 23. 01. 2016, 15:45:50 »
Tak popište, jak ta vaše síť fyzicky vypadá a kde jsou jaké spoje. Pokud se ani do routeru 1 nedostanete, předpokládám, že to není váš domácí router. Je to tedy zařízení ISP? A je umístěné u vás? Za ním už je WiFi spoj?

4672
Sítě / Re:Ztráta paketů
« kdy: 23. 01. 2016, 15:06:32 »
Ovsem testovat ping asi nema moc cenu. Kdyz projde ping az do tramtarie, tak ping na nejblizsi dva uzly nejspis take.
Jenže tazateli se pakety ztrácí. Kdyby se mu neztrácely, tak by se neptal. Když ověří, že se ztrácí pakety hned mezi jeho routerem a zařízením ISP, bude vědět, že problém je v jeho přípojce nebo vysílači ISP a ne dál. Zároveň bude mít v ruce něco, s čím může jít za ISP. A zároveň pokud to bude vypadat na závislost ztrátovosti na velikosti paketů, bud vědět, že je problém nejspíš ve WiFi spoji (a že to nezpůsobuje třeba QoS ISP).

4673
Sítě / Re:Ztráta paketů
« kdy: 23. 01. 2016, 14:39:20 »
Jirsak, to je tedy rada nad zlato. Vzhledem k tomu, ze uzel 1 je nejspis gw a hnez za nim se zacinaji ztracet pakety, tak by me zajimalo, ktere nejblizsi zarizeni byste doporucil testovat.
Pokud 192.168.?.? je router tazatele a 10.0.?.? je zařízení ISP, testoval bych ping na 10.0.?.?. Mezi těmito dvěma zařízeními bude ten WiFi spoj. No a vypadá to, že právě na 10.0.?.? se pakety začínají ztrácet, tedy to vypadá na problém s tím WiFi spojem, jak jsem psal.

Testovat to na bůhvíjaký server v internetu nemá smysl, protože ISP vám oprávněně řekne, že je cíl mimo jeho síť a že s tím nic udělat nemůže.

4674
Sítě / Re:Ztráta paketů
« kdy: 23. 01. 2016, 12:40:25 »
Ping ve výchozím nastavení posílá krátké pakety, ty přes WiFi projdou snáz. Je možné, že MTR používá ve výchozím nastavení větší pakety. Vyzkoušejte ping s většími pakety, a hlavně otestujte provoz ne vůči nějakým serverům daleko v internetu, ale vůči nejbližšímu zařízení, které je za WiFi spojem. Pokud se budou pakety ztrácet i tam, víte, že je problém v tom WiFi spoji (je to nejpravděpodobnější). Pak záleží na tom, zda i vaše klientské zařízení patří pod správu ISP – to by pro vás bylo jednodušší a bylo by na ISP, aby spoj opravil. A nebo ISP jenom poskytuje AP a je na vás, abyste se na něj připojil, jak umíte – pak je potřeba zjistit, zda je problém na AP, na trase nebo u vás.

4675
Server / Re:Nastavení Apache2
« kdy: 23. 01. 2016, 09:25:28 »
Keď som svojho času začal prechádzať z windows na linux, oprávnenia fakt neboli prvá vec, ktorú by som si detailne študoval. Išiel som krok po kroku - čo bolo treba, to som si vygooglil. Samozrejme, že som sa časom musel naučiť, ale začínať tým, to by bola fakt nuda.
Vždyť tazatel také nemusí začínat studiem souborových oprávnění. Ale když to nezná a nechce znát, pak ať ve vlastním zájmu nepřesměrovává v Apachi DocumentRoot.

4676
Server / Re:Nastavení Apache2
« kdy: 22. 01. 2016, 22:07:12 »
Rada k nezaplacení, jen co je pravda...
Pro lidi, kteří vědí, co jsou to oprávnění k souborům a adresářům, je ta rada přínosná. Ostatní by si měli po přečtení té odpovědi uvědomit, že toho asi neznají výrazně víc, než si mysleli, a že tedy asi budou muset něco nastudovat – pokud to chtějí dělat sami.

Každopádně pokud chcete poradit s vaším problémem, bude potřeba, abyste ho popsal. Ne že se snažíte přesunout DocumentRoot Apache, ale čeho se tím snažíte docílit. On totiž může být problém už v tom, jaký způsob řešení vašeho problému jste zvolil.

4677
Server / Re:Nastavení Apache2
« kdy: 22. 01. 2016, 22:04:14 »
Karle, tvůj další dotaz by měl znít: jak změním pravá a vlastníka adresáře?

Příkazy: chmod a chown.

A pokud to nepomůže, tak je možné že musíš nastavit atributy SELinuxu, takže si zjisti jeslti selinux běží příkazem: getenforce.

Pokud ano, je nutné změnit příznaky:

chcon -R -t httpd_sys_content_t /home/karel/Documents/www

Jo a mimochodem, fóra jsou tu od toho, aby lidé radili, ale je potřeba ukázat trochu snahy a pokory a ne se hned rozčilovat...

Což je ale špatný dotaz a ještě mnohem horší odpověď. Protože ta práva, tak, jak jsou ve výchozím stavu nastavena, mají nějaký smysl. A rozhodně by je neměl měnit někdo, kdo vůbec netuší, proč tam nějaká práva jsou.

4678
Sítě / Re:Debian nedostane správnou IP od UPC
« kdy: 22. 01. 2016, 17:41:26 »
Uff, ta diskuze se nam pekne "meni". Ja jen podotknu, ze je divne kdyz necham ten Debiani router liznout IP adresu svazanou s jeho MAC u netboxu (stary ISP), tak vse funguje jak ma a i mu jejich DHCP server vse prideli OK. Kdyz to same udelam u UPC, kde maji mit mou Debianni MAC svazanou s jejich IPV4 adresou tak to proste nefunguje. Proto tusim, ze ma UPC neco jinak/striktneji a podobne.

A jeste odbocim: Komunikaci mezi Debianem a switchem jsem dumpoval a jiz jsem ji i v nekterem drivesim prispevku vkladal... Komunikaci mezi modemem a switchem jsem nedumpoval, zatim, a asi na to zatim i dlabu. Kor kdyz to funguje (zatim) se statickym nastavenim, opsanym ze stroje, kterej si to s naklonovanou MAC lizdl od UPC ok.

Jak už jsem psal někdy hned na začátku, DHCP klient nemusí posílat jen MAC adresu, ale také další údaje, třeba client-id. Je možné, že DHCP server UPC ty další údaje zmatou. Proto je potřeba vidět kompletní požadavek, ideální by bylo porovnat požadavek od Debianu a požadavek od toho zařízení, které dostalo přidělenu správnou IP adresu. Musí v nich být nějaký rozdíl.

To, co jste sem dával, podle mne nebyl kompletní dump, ale jen výpis základních údajů. Nejlepší je nechat zachytit celé pakety do souboru, pak je můžete analyzovat jak je libo.

4679
Sítě / Re:Debian nedostane správnou IP od UPC
« kdy: 22. 01. 2016, 08:26:24 »
Ještě mne napadá, pokud ta konfigurace se switchem za modemem je z toho důvodu, že k tomu modemu máte připojeno víc zařízení, a jednomu chcete přidělovat pevnou veřejnou IP adresu, a ostatním dynamické. Nevím, zda takovouhle kombinaci UPC podporuje, jestli to není tak, že když nějaké zařízení požádá o dynamickou IP adresu (je to pro UPC neznámá MAC adresa), budou na dané lince už všechna zařízení (po nějakou dobu) dostávat dynamické IP adresy. Takže bych ještě vyzkoušel nechat přidělit třeba tomu Netboxu dynamickou IP adresu (jak to asi máte nakonfigurované), a pak vedle něj dát do switche to zařízení s naklonovanou MAC adresou, které už dříve dostalo správnou statickou IP adresu, jestli ji dostane znovu, nebo jestli také dostane tu dynamickou.

4680
Sítě / Re:Debian nedostane správnou IP od UPC
« kdy: 21. 01. 2016, 20:49:55 »
A tohle jste vzal kde? Nevidím tu v diskuzi relevantní informaci za jakých podmínek to zakladatel diskuze má.
Vážně by diskusi pomohlo, kdybyste si přečetl ostatní příspěvky. Alespoň ty od tazatele. Nebo alespoň začátek jeho prvního příspěvku:

UPC neumoznuje staticky nastavit IPv4 adresu na na sitovem rozhrani. IP adresa , maska, brana a pod. musi byt prideleno z jejich DHCP srveru proti MAC adrese vasi sitovky. Moc tomu nerozumim proc,  […]

Řešíme tady, že BEZ SWITCHE s nastavenými VLAN to funguje.
Tuhle informaci jste sebral kde?

Přečtěte si diskuzi, pak jste za mimoně, když to neděláte...
OK, asi je to pro vás problém přečíst si tu diskusi, tak tady máte relevantní příspěvek, už ho cituju po druhé:

Co to udela, kdyz vyhodite switch z cesty?
To samozrejme funguje, teda na jinem stroji s naklonovanou stejnou MAC, jinak diky trunku primo vyhodit z cesty ten switch samozrejme nejde :-(
Přímo vyhodit ten switch z cesty nejde, takže asi vyhozen nebyl, ne? Tazatel to zkoušel (asi bez switche) s jiným strojem, který předpokládám (na rozdíl od toho Debianu) mohl klidně odpojit od toho switche. On ten Debian v té síti totiž nejspíš dělá i něco jiného, než jenom router, a asi není možné ho jen tak pokusně odpojit.


Dále tazatel napsal:
S netboxem je odpoved ano, stejne konfigurace, stejne MAC adresa u nich a jejich DHCP to prideli OK :-(

Takže tu máme tři případy:
  • Netbox přes switch – funguje
  • jiné zařízení asi mimo switch – funguje
  • Debian přes switch – nefunguje

Když to přes switch s jedním zařízením funguje, opravdu budete hledat chybu nejprve v tom switchi? Nebudete hledat chybu spíš v tom Debianu, který jako jediný nefunguje? Zvlášť když dostane i odpověď, ale chybnou – takže pokud by v tom měl mít prsty ten switch, musel by upravit procházející DHCP požadavek nebo odpověď, a to pouze v případě toho Debianu, ale ne v případě Netboxu.

Stran: 1 ... 310 311 [312] 313 314 ... 375