Neobsahuje názory Henryka Laholy

API a PHP, díl třetí

ve kterém udělám úkrok stranou a napíšu něco o ověřování uživatelů.

Každé API musí (nebo by mělo) ověřit, že klient, který chce nějak přistupovat ke službám, přistupovat může. Že nějaký Lojza nepoleze Pepovi do dat a obráceně.

Jak jsme si už řekli, volání vzdáleného API bývá u webových aplikací realizováno (pro někoho možná překvapivě) via HTTP. Jaké jsou možnosti ověření u podobného volání?

HTTP coby nestavový protokol nemá sám o sobě možnost, jak jednou ověřit identitu uživatele a dál s ním pracovat jako s důvěryhodným. Používají se proto různé způsoby.

Jedna z možností je ta, kterou používá např. XML-RPC API u Blogger.com. Tedy že každé volání předává jako parametr uživatelské jméno a heslo. Což je docela zoufalé řešení a především – není bezpečné, protože se obojí posílá v každém požadavku, najednou a v otevřené podobě. Samosebou – je možné použít SSL...

O ždibíček lepší řešení je HTTP autorizace. To je ten postup, při kterém na vás prohlížeč vyběhne s žádostí o vložení jména a hesla. Vždyť si to zkuste:

if(!isset($PHP_AUTH_USER)) {
Header('WWW-Authenticate: Basic realm="Chranena oblast"');
Header('HTTP/1.0 401 Unauthorized');
echo "Nezadal jste heslon";
exit;
} else {
echo "Uzivatel: $PHP_AUTH_USER.<br>";
echo "Heslo: $PHP_AUTH_PW.<br>";
}


Je vidět, že PHP skript má v takovém případě k dispozici jméno a heslo v otevřené podobě. Jak ho dostal? A jak se na takovou stránku připojit skriptem?

$fp = fsockopen("http://server.cz", 80, $errno, $errstr);
if (!$fp) {
echo "$errstr ($errno)<br/>n";
} else {
fputs($fp, "GET /cesta/soubor.html HTTP/1.1\r\n");
fputs($fp, "Host: server.cz\r\n");
fputs($fp, "Authorization: Basic ".
base64_encode("jmeno:heslo")."\r\n");
fputs($fp, "Connection: close\r\n\r\n");
fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
}


Jméno a heslo se předává v hlavičce HTTP požadavku velmi jednoduchým způsobem – jako řetězec "jméno (dvojtečka) heslo", zakódovaný Base64 algoritmem (nejde o žádnou šifru, pouze o způsob, jak převést obecná binární data na řetězec tisknutelných znaků). Zkusil jsem, čistě pro zajímavost, co se stane, když uživatelské jméno obsahuje dvojtečku. Výsledek byl předpokládatelný. :)

Existuje možnost, při níž se heslo neposílá v otevřené podobě. Jde o autorizační metodu "Digest", pro zvídavé odkaz.

HTTP autorizace, ať už Basic nebo Digest, bývá používána spolu s REST požadavky.

Jiná metoda ověřování uživatele je založena na jednorázovém ověření uživatele a vytvoření něčeho jako session – tedy simulace "stavovosti" u nestavového protokolu. Celá komunikace klienta začíná žádostí o vydání tzv. tiketu (ticket). Aplikace si vytvoří záznam o tom, že kdosi požaduje přístup, tento záznam si označí jednoznačným identifikátorem a identifikátor pošle klientovi zpět. Právě ten je oním tiketem, onou "vstupenkou do systému", bez které jsou ostatní funkce API nedostupné.

Pokud klient získá tiket, může ověřit svou totožnost. Lze to udělat metodou "challenge – response", tedy takovým postupem, kdy klient dostane od serveru nějaký údaj, udělá s ním předem dohodnutou operaci a zašle jej zpět. Něco jako "autorizace bankovních operací pomocí kódové kalkulačky". Zde můžeme jako "challenge", tedy "výzvu", vzít rovnou tiket. Postup je pak takový, že klient zavolá autorizační funkci API a předá uživatelské jméno (v otevřené podobě) a digest hesla – např. jako md5(md5($heslo).$ticket) – takto je heslo nezjistitelné, server přesto může ověřit jeho správnost (udělá si stejný digest) a navíc se digest při každém ověření mění. Jakmile je klient ověřen, je brán tiket jako "důvěryhodný" a požadavky s tímto tiketem jsou přijímány. Server si může pro zvýšení bezpečnosti zároveň jako jeden z parametrů tiketu uložit IP adresu a zároveň nastavit expiraci tiketu, např. na 60 sekund od poslední operace.

Všechny tyto postupy předpokládají, že klient má k dispozici uživatelovo jméno a heslo, což vyžaduje, aby mu tyto údaje uživatel sdělil. To znamená, že jméno a heslo bude uloženo na potencionálně nedůvěryhodném místě. Proto některé webové služby používají vlastní ověření (můžete to v praxi vidět např. při placení PayPal-em na eBay). Postup je např. následující:

 

  1. Uživatel na stránce www.klient.cz vyvolá nějakou operaci, která vyžaduje přístup k API na www.sluzba.cz
  2. Server klient.cz požádá server sluzba.cz o tiket pro tohoto uživatele a dostane jej
  3. klient.cz přesměruje uživatele na přihlašovací stránku na sluzba.cz a předá zároveň obdržený tiket; např. na stránku http://www.sluzba.cz/api/login.php?ticket=xyz123qwerty
  4. Uživatel zadá na oné přihlašovací stránce na sluzba.cz svoje jméno a heslo a standardním způsobem se přihlásí
  5. Login skript na sluzba.cz ověří uživatele, údaje si poznamená k danému tiketu a přesměruje uživatele zpět na stránky klienta
  6. klient.cz nyní může posílat požadavky na sluzba.cz s přiděleným tiketem


Lze použít i jednodušší způsob, kdy je tiket vrácen až po úspěšném ověření na stránkách sluzba.cz. Postup je například následující:

  1. Uživatel na stránce www.klient.cz vyvolá nějakou operaci, která vyžaduje přístup k API na www.sluzba.cz
  2. klient.cz přesměruje uživatele na přihlašovací stránku na sluzba.cz a předá informaci o tom, kam se má uživatel po přihlášení vrátit, např. http://www.sluzba.cz/api/login.php?callback=www.klient.cz%2Fprihlaseni.php
  3. Uživatel zadá na oné přihlašovací stránce na sluzba.cz svoje jméno a heslo a standardním způsobem se přihlásí
  4. sluzba.cz vytvoří pro přihlášeného uživatele ticket
  5. Login stránka na sluzba.cz přesměruje uživatele zpět na stránku, zadanou v parametru callback ("zpětné volání"), tedy na http://www.klient.cz/prihlaseni.php a předá ticket jako parametr (např. ?ticket=ab7c8d5a4f2cda)


Samozřejmě lze postupy různě kombinovat, fantazii se meze nekladou.

Příště se dostanu k praktickým ukázkám jednoduchého API a jednoduchého klienta.

Dne 10.02.2007

Twittni

Přidej do: Přidat na Conota Linkuj si ! asdf.sk StumbleUpon Toolbar Stumble It!

Komentáře

[1] (Henry ) 10.02.2007, 13:12:51 [X] [D]
Proc tenhle serial neni na interval.cz/root.cz? :)

[2] (Arthur Dent ) 10.02.2007, 13:38:01 [X] [D]
[1] Protože ho nechtěli? Ne, vlastně ne - já jim ho ani nenabídnul, tím to je! :)

[3] (zirafka - Mail - WWW) 10.02.2007, 16:20:20 [X] [D]
Je jedna vec, ktera me na web2.0 (at uz tento znamena cokoliv) desi -- navrat do stredoveku v oblasti bezpecnosti komunikace. Takze diky za serial a obzvlast diky za tenhle clanek!

[4] (zirafka ) 10.02.2007, 16:21:29 [X] [D]
"tento termin" jsem chtela napsat. Sorry.

[5] (rony ) 10.02.2007, 17:21:49 [X] [D]
[1] [2] - pretože tam by sa pýtali, prečo je ten seriál tam :-)

[6] (rony ) 10.02.2007, 17:23:41 [X] [D]
[3] a to po stredoveku je ako komunikacne bezpecne? skus to trosku rozpisat, asi som nerozumel tvojmu komentaru.

popisovane praktiky su pouzivane aj bez nalepky Web 2.0 a existuju separatne od tohto pojmu. opravte ma ak som neporozumel zirafke

[7] (zirafka - Mail - WWW) 10.02.2007, 18:20:21 [X] [D]
[6] Sorry, asi jsem se vyjadrila ponekud nepochopitelne.

Jen jsem tim chtela rict, ze mam pocit, ze plati neprima umera: cim vic jsme Web2.0, tim mene se dbame na bezpecnost.

Problem vidim v tom, ze dnes se zabezpecenim posilanych informaci nezabyva daleko mene, nez drive. Duvod je zrejme v tom, ze drive byli aplikace sdilejici informace po internetu vrcholem programatorskeho umeni. Se slavnym webem2.0 je programovani webovych aplikaci pristupne i programatorum, kterym bezpecnost vymeny dat (tim myslim integrita, autenticita, nepopiratelnost a duvernost) zhola nic nerika. Takze panbuh zaplat za kazdy clanek, ktery problematiku bezpecnosti dnesnim "cool programatorum" priblizi.

[8] (Arthur Dent ) 10.02.2007, 18:27:26 [X] [D]
[7] Nechceš, doufám, aby došlo i na taková slova jako třeba "Diffie" nebo "Hellman", že ne? :)

Já osobně bych byl vděčen i za méně bezpečné české webové služby, ale ony nejsou ani ty... Asi tu ani tihle kewl programátoři nejsou. Víš snad o nějaké české webové službě, která nabízí API (nechme stranou XML-RPC na Bloguje a na Notýsku a RESTlike API na JAGGu)?

[9] (rony ) 10.02.2007, 18:44:43 [X] [D]
[7] a co sa da pokazit tym, pokial API vytvori programator z tej prvej skupiny? Alebo inak, ak je API z projektu "web2.0" pomocou tu popisovanych metod, ako sa bezpecnostne odlisuje od projektov, ktore su budovane podla tych istych metod (su aj nejake ine?).

pokial je ale zmyslom "vymeny" dat u danej aplikacie, ze uz data nevklada obmedzena (doslova aj v prenesenom vyzname) skupina "nadautorov", potom dnes mas mozno k dispozicii aplikacie, ktore sice nebezia na "tvojom zeleze" ale mozes si do nich davat co uznas za vhodne a pouzivat ich na co ty potrebuje.

z jedneho pohladu je naozaj tristne pozerat sa ako do youtube tecie kvantum bezcenneho materialu ale z pohladu cloveka, ktory tam ma konto a plne prava tam cosi vkladat je to neocenitelna vec, pretoze sa nemusel zaoberat vecami typu: kua, kam to vsetko narvem, ako to naprogramujem, ako to skonfigurujem, ako to zabezpecim.

z dalsieho pohladu je pre mna ako uzivatela youtube bezpecnost danych dat dolezita len natolko nakolko si cenim data do neho vlozene. uz z logickych dovodov do youtube nebudem vkladat material, ktory by niekto mohol vidiet (je to proti zmyslu ukladania dat tam) a takisto ak ide o extra citlive data, ktore chcem spristupnit inym sposobom ako verejne, tak tam inu ako klasicku cestu nemas ale musis do bezpecnosti daleko viac investovat.

osobne si myslim, ze sa neda jednoznacne oddelit, ze "dnesne web20 projekty" musia byt zakonite menej bezpecne atd. je to len zalezitost toho, do akej miery chces aby take boli.

cize ak youtube nezalezi na identite pouzivatela, tak naco ju bude vyzadovat. ak gmailu nezalezi na tom, ci si mazes maily kvoli kapacite, tak proste da nezaplnitelnu schranku kazdemu. ak si digg mysli, ze naozaj kazdy tam moze umiestnit odkaz a postavi na tom zmysel celej aplikacie, tak budiz. preto im v principe nemusi zalezat, ci na to konto chodi Jozko Mrkvicka ako sa predstavil ale to, co tam vklada. diggu na dovernosti vkladanych dat nezalezi pretoze v principe mu nezalezi ani na identite tych, co mu plnia obsah :-)

to je jediny rozdiel aky ja v tom vidim ale samozrejme to nie je vsetko.

cize ak ty spajas "dnes su programeri tych komunitnych projektov bezpecnostni luzri" tak nemas pravdu. iste - bezpecnost je hlavne zalezitost skusenosti a projekty tinezerov bez nich su take ake su.

pred 10 rokmi nebol prakticky nikto, kto by na web vkladal obsah, dnes sa to uz prelamuje a TEN kto chce ma moznost omnoho lahsie. je v tom bordel ale - bordel to bol vzdy :-)

ked si spomeniem na rozne bezpecnostne incidenty vzdy je to len problem skusenosti a vidim jeden efekt dneska:

- volakedy si chcel publikovat tak si znasilnila nejaky nukoidny balik a ako tak rozbehala, so vsetkymi chybami ake sa len dali spachat :-)
- dnes sa uz mozes na taketo veci vykaslat a proste si najdes webovy projekt, ktory ti tvoju potrebu uspokoji.

Takze konecne sa ludkovia, ktori iba chcu web pouzit ako nastroj, nezaoberaju aj programovanim - cize ak chcem pisat weblog, nemusim naprogramovat ani riadok. este pred par rokmi to znamenalo nutnost aspon si cosi nainstalovat.

bezpecnost sa neda chapat absolutne - len vzhladom na to v akom pomere je strata alebo kompromitacia dat bolestiva sa moze vybudovat uroven bezpecnosti aplikacie.

napr. je nezmysel ukladat si jogurt pred sestrou do trezora, ak ho objavi a zje, tak jeho strata neboli, pretoze na svete je kopec jeho kopii :-)

neviem, ci som to povedal jasne: nemozno ziadat od kazdej aplikacie bezpecnost na urovni ochrany prezidenta U.S. a fakt, ze existuju aplikacie, kde ani zakladna bezpecnost neexistuje, je proste jav, ktory nema nic spolocne s Web 2.0 ale skor s tym kto ich robi. A taki tu su neustale, pretoze dorastaju stale novi.

[10] (rony ) 10.02.2007, 18:54:07 [X] [D]
[8] Arthur, ja si myslim, ze vacsina projektov co sa patlaju tu je robena ako vonkajsi efekt - podoba sa to tym vzorom s vonku. Vidis to aj na komentari [3] z druheho dielu - on ani netusi, ze Youtube ma nejake API.

proste vidia vonkajsi obal, prenesu do svojho projektu tu vonkajsiu interaktivnu cast a tym to podla nich skoncilo, pretoze naozaj je pravda, ze API vyuzije par jednotlivcov. Lenze prave nimi zacina uspech aplikacie - ak niekto spravi nejaku "srandicku" postavenu na ich aplikacii, ktora ju spropaguje. Ak napisem nejake "blbinky" sam, ktore si trebars ludia posielaju mejlami, vkladaju do diskusnych for, na svoje weby - to do znacnej miery vybuduje vztah ludi k aplikacii a uz sa jej neda tak lahko zbavit. To je priklad YouTube - akonahle si vlozim video do clanku uz som neoddelitelne zavisly na nom.

Dnes si mi pripomenul box.net - je to ta ista schema - vidim, ze si mozem dat blbinku na stranku, ktora ma prakticky vyznam - usetrim miesto na vlastnom hostingu ale zaroven sa mozu tie data na nom ulozene tvarit akoze ich mam na svojom vlastnom webe. A uz som v pasci :-)

To chyba cz/sk projektom - vacsinou sa snazia vybudovat si navstevnost takymi klasickymi prostriedkami - propagaciou v silnom mediu resp. nahananim (vhananim) navstevnosti. A ked to navstevuje kvantum ludi, tak je to vlastne uspesne :-)

pritom znacna cast navstev youtube je podla mojho nazoru sposobena tym, ze tisicky webov maju video z youtube "u seba". A ked to vidim ja na inom webe, tak nebudem premyslat ci existuje ina moznost najma ak zistim, ze to iste urobit ma stoji Copy Paste - a ze ma v tom ten web posmeluje "Urob to!".

Ak nieco vycitam nasim projektom tak je to to ostre ohranicenie, oplotenie sa typu "som akoze cool projekt" ale vy mi iba vkladajte data a chodievajte mi sem na moj web priamo - ziadne ine cesty nechcem. A mozno ani neviem, ze by mali byt uzitocne.

Odhliadnuc od toho, ze implementovat API je mozno nad sily cloveka, ktory doma v detskej konecne pochopil sablonovy system nejakeho sw balika a premaloval v nom farby plus lokalizoval ho :-)

[11] (Arthur Dent ) 10.02.2007, 19:03:30 [X] [D]
Radši zasáhnu dřív, než předvedete ještě nějaké "jáovozetyokoze" číslo :)

Rony, máš pravdu v tom, že problém bezpečnosti není otázka Web2.0, ale programátorů jako takových. A po pravdě - na věku nezáleží, spíš na zkušenostech a míře pokory. :) Čím snazší bude vývoj aplikací, tím větší lemry se do toho budou pouštět. Stejně jako čím jednodušší je práce s počítači, tím jednodušší lidé s nimi pracují :)

Jenže zatímco před pěti lety lemry spáchaly tak maximálně osobní stránku, tak dnes se pustí do databázové aplikace (SQLinjection je moc pěkná věc), nazvou ji "XXXXr(beta)" - a voila! je tu další děravá tzvWeb2.0 aplikace.

Řešení je, milá Žirafko, prosté: Nevěřit jim. Nechat je, ať se za své nezabezpečené Webdvanuly navzájem poplácávají a používat nějaké solidní aplikace, které svou invenčnost nevyčerpaly zrcadleným logem a hbězdičkou s nápisem BETA :)

[12] (Arthur Dent ) 10.02.2007, 19:13:22 [X] [D]
[10] Ano, to je přesně ten problém: "To je MOJE! MOJE! MOJE! stránka". Jak jsem napsal už v prvním díle - každý si to patlá sám, na datech svých uživatelů sedí a jinak než přes web se k nim nesmí! A nejlépe ještě z titulní stránky!

A když už je někdo, kdo nabízí nějakou spolupráci, tak zase má podmínky jak stehno: Musí to být u klienta odkazované z titulní stránky bannerem min. 120x120px, v klientském systému musí být název té služby TAKOVEJMAHLE písmenama v horní třetině stránky a nesmí tam bejt jiná vložená služba a ... atd.

Asi se fakticky našňupnu a příští tejden udělám webovou službu, kterou jsem si promýšlel na dovolené. Ať se to tu konečně hne, herdek. ;)

[13] (zirafka - Mail - WWW) 10.02.2007, 19:32:54 [X] [D]
[8] "Diffie" a "Hellman"? Maminka rikala, ze takova slova slusna divka nerika. Ale myslim, ze kdyby prislo na vec, tak bych nemela problem je pouzit (-;

Ja osobne bych byla vdecna i za mene webove ceske bezpecne sluzby, ale ony nejsou ani ty... (-;
Jestli ono nakonec nebude problem v tom "ceske". A nemyslim si ze by byl problem v tom, ze tu nejsou prgramatori, ale mozna spis tem malo, co tu jsou, stoji za zvazeni, jestli ma cenu delat neco jen pro nas maly cesky rybnicek.

Me se cele slavne web2.0 nelibi prave kvuli bezpecnosti a dovolila bych si zde lehce zaprorokovat, ze prave na bezpecnost web2.0 jednou dojede:
1, spatne zabezpeceny prenos dat (moznost odchytavat hesla atd..)
2, web2.0 znamena, ze uzivatel ma svoje data rozstrkana po vsech moznych sluzbach, z nichz zadna mu nezaruci, ze o ne neprijde, pripadne, ze se nedostanou do rukou nekomu nepovolanemu.
3, vyuzivani sluzeb web2.0 pres API znamena, ze nemam zadnou kontrolu nad tim, jestli externi sluzba, kterou vyuzivam, bude vzdy fungovat tak, jak to ocekavam. Tzn. ztrata kontroly nad obsahem a nekdy mozna i nad funkcnosti.

Priklad: vyuzivam XML-RPC na texy.info (ze by dalsi ceska webova sluzba s API (-;) Ale pouzivam ho z nouze (pro aplikace v Pyhtonu). Nikdy totiz nevim, jestli treba dgx nerupne v bedne a nebude misto naformatovaneho textu posilat neco uplne jineho.

(koukam se, ze nez ja napisu par radku textu, tak uz je tu nekolik novych sahodouhych komentaru. Diskuse pres komentare asi neni nic pro me. Zkusim o tom napsat clanek a kdyztak ho linknu.)

[14] Díky (David V. ) 10.02.2007, 20:04:49 [X] [D]
za pěkný seriál o WS - je to zajímavé čtení.

[15] (rony ) 10.02.2007, 22:53:42 [X] [D]
[13] mne len nejde dohlavy, ze si davas ekvivalenciu:

web20 = nezabezpecene
xmlrpc = nezabezpecene

priklad s tym, ze ti nejake API prestane davat odpovede... no v tom je to jadro pudla: ked ti ich prestane davat, a tvoja aplikacia s tym nepocita, tak kde je chyba? no v tom, ze si sa na tuto eventualitu nepripravila. a problem je nie v tom, ze poskytovatel cez API "zblbol" a odletel na Bahamy ale v tvojej nezabezpecenej aplikacii :-) lebo nemas plan B :-)

ale chcem ta naozaj odviest od toho znacne zjednoduseneho nazoru, ze ak je to API ci WEB20 tak je to urcite zle zabezpecene.

Ak by to bolo tak, potom by sme nemohli hovorit roky o vobec nejakej interoperabilite, middleware a cojaviem akych pojmoch. Koniec koncov vsetky standardy, formaty, dohody funguju presne na tom. Funguju, ked vsetky zucastnene strany maju zaujem na spolupraci. A to nie je hlavny znak web20 ale celeho vyvoja softwaru ako takeho!

priklad: keby neprisla revolucia, tak este dlhe roky po 1987 sa zivim pomerne uspesne ako programator v strojovom kode pre PMD85. Moj posledny program pre ten stroj mal po skompilovani viac 15 kilobajtov (polovica operacnej RAM). Keby po revolucii sa sem nanasypali PCcka, tak sa este dlhsie uzivim ako programator aplikacii pre ZX Spectrum. Skoncil som aplikaciou, ktora bola distribuovana na 4!!! diskoch a nebola to obvykla "hra" alebo "textovka".

Keby neprisli Windows, tak este dlho predavam moj program pre Autoskoly, ktory som v grafickom mode naprogramoval kompletne od zakladu all inclusive :-)

Keby neprisiel internet, tak este dlhsie sa bavime softwarmi postavenymi nad technologiou Fido a ti poviem, ze to bola celkom zabava nad nou robit seriozne aplikacie pre prepojenie pobociek, vymenu dat...

Vzdy v kazdom obdobi hrala rolu bezpecnost a podobne otazky. A kazdou jednou z nich som sa ucil na cudzich a svojich chybach. A cim dalej viac ked mam blby napad nieco "urobit" tak prave bezpecnost ma vrati na zem.

Ale nedokazem tvrdit, ze "prave nejaky vagny pojem ako web20 alebo xmlrpc" su nebezpecnejsie ako nieco ine, trebars "klasicke uzavrete webaplikacie". Najcastejsie bezpecnostne incidenty? Nezalohovanie, sql injection, xss, slabe hesla, spristupnene casti projektu, ktore pristupne byt nemali, chyba operatora, MIM... to vsetko sa tyka rovnako vsetkych projektov. Meni sa len cena aku za kompromitaciu zaplatis a aku si ochotna este zniest.

[16] (zirafka - Mail - WWW) 11.02.2007, 01:52:17 [X] [D]
[18] "ale chcem ta naozaj odviest od toho znacne zjednoduseneho nazoru, ze ak
je to API ci WEB20 tak je to urcite zle zabezpecene."

rony, jsem rada, ze priznas o co ti jde. I kdyz nevim, cim jsem si zaslouzila z Tve
strany takovou peci o moje nazory ((-;

Prvne te musim zklamat: mezi web2.0, xmlrpc a sluvko "nebezpecne" v zadnem
pripade nakladu rovnitko. Jen vidim bezpecnost jako slabe misto masoveho
rozsireni techto vymozenosti. Bezpecnost bude pravdepodobne misto, kterym zacne
unikat vzduch ze zplaskavajici bubliny web2.0. Ale o tom si kdyztak povime casem.
(-;

Dovedu dal priklad s API: Mira nakolik budu pripravena na "selhani" na druhe
strane odpovida mire toho, jak moc si vlastne budu muset napsat aplikaci znovu
sama. Vezmu zase ten priklad s Texy!: kdyz budu pocitat s tim, ze server muze
neodpovidat, pripravim si nejaky chybovy stav, odlozim zpracovani na pozdeji atd.
Neni problem. Ale co budu delat, kdyz dgx rupne v bedne, nebo mu nekdo hackne
server a zacne mi treba misto formatovaneho textu posilat url na pornoservery?
Mam mit plan B a pocitat s tim, ze se muze stat cokoliv? To by ale znamenalo
kontrolovat kazdou odpoved do te miry, ze uz se mi vic vyplati formatovani
delat na svem a ne vyuzivat webovou sluzbu. Analogicky priklad si
vymyslim na libovolnou jinou sluzbu.

Proc si tedy myslim, ze "klasicke uzavrene webove aplikace", prestoze trpi
bezpecnostnimi chybami stejne jako ty "moderni otevrene", jsou bezpecnejsi?
Hlavne proto, ze za ne nekdo nese zodpovednost (placene sluzby), nebo existuje
povedomi o jejich nespolehlivosti (free sluzby). Zkratka bud existuje nekdo,
kdo je zodpovedny v pripade, ze dojde k nejakemu bezpecnostnimu incidentu, nebo
vim, ze na dotycnou sluzbu nemohu spolehat a ridim se podle toho.
U web2.0 sluzeb neni poradne definovana zodpovednost, takze chybi tlak, ktery
by nutil provozovatele techto sluzeb dbat na bezpecnost. Stejne tak neni tlak
na vyvojare, aby vyvijeli bezpecne aplikace. To je cele.

[17] (Arthur Dent ) 11.02.2007, 06:34:15 [X] [D]
[19] To je prosté. DGX nabízí službu, definoval API a je tu předpoklad, že za normálních podmínek (!) bude fungovat tak jak očekáváš. Pokud tomu nevěříš, tak to nepoužiješ, pokud tomu věříš, tak to použiješ, vždyť je to prosté. Za mezních podmínek (tvůrce zešílí, kdosi mu hackne server) není funkčnost zajištěna - ale to není nikde! Vzpomeň si na to, jak celý den měla česká mutace Google na tlačítku napsáno cosi o pánských přirozeních :) Ale to není BEZPEČNOSTNÍ problém, ale problém důvěry. Já taky věřím, že můj AV software kontroluje soubory. A co když jeho tvůrce zešílí a vydá záplatu, která mi přemaže disk???

To co tu říkáš není nijak zásadní problém "W2.0", ať už je Web2.0 cokoli. :) Je to problém SW a SW služeb jako takových.

"U web2.0 sluzeb neni poradne definovana zodpovednost"? Položím kontradotaz: Je to problém SW veřejných služeb obecně nebo až "web2.0" služeb, ať už je web2.0 cokoli? Pokud ano, tak proč? Kde vidíš ten zásadní rozdíl z hlediska zodpovědnosti mezi Web1 a Web2 službami? Já prošel v posledních týdnech mnoho Web2.0 služeb a na všech jsem se setkal s tím, že je provozuje VELMI KONKRÉTNÍ provozovatel. ;) Mimochodem, jak placené vs free služby souvisí s Web2.0? Chceš říct, že W2.0 služby jsou free, ale tají to, takže ty nemáš "povědomí o jejich nespolehlivosti"? ;)

[18] (zirafka ) 11.02.2007, 17:05:00 [X] [D]
[20] Podle me problem duvery JE zaroven problem bezpecnosti. V pripade, ze vyuzivam nejakou sluzbu, snazim se zajistit jeji bezpecnost tim, ze mam dohodu s jejim provozovatelem. Neco za neco. Typicky penize za zaruku, ze sluzba bude fungovat. Kdyz nebude fungovat, mam dohodou zajistene nejake odskodne. Pokud proste jde o neco duleziteho, chci mit jistotu (a moznost si za tuto jistotu zaplatit). Ne pouze duverovat.

Je pravda, ze u klasickeho SW mnohdy taky nemam moznost zaplatit si za nejakou garanci (zreknuti se zodpovednosti je v oblasti SW bohuzel pravidlem), ale pokud jde o neco duleziteho, existuji u klasickeho SW postupy, kterymi mohu ziskat urcitou garanci. Platim si spravce site, ktery ma zodpovednost za to, ze se mi do pocitace nedostane AV program, ktery by mi naformatoval disk, platim si za spolehlivost hostingu, mailserveru...

Web2.0-at-uz-je-to-cokoliv (dale jen web2.0) sluzby (aspon tak, jak existuji ted) mi moznost zaplatit si za garantovany pristup nedavaji. Jejich zabezpeceni, dostupnost atd. zavisi jen ctizadosti jejich provozovatele. A to je z meho pohledu spatne.

Rozdil teda vidim v tomhle. Mozna, ze neni az tak markantni, ale stejne podle meho nazoru zpusobuje to, ze web2.0 je mozne vyuzivat jen na zabavu a ruzne blbustky, ale ne tam, kde potrebuju mit nejakou jistotu. Tohle si ale spousta lidi imho neuvedomuje. Staci se podivat jak lide nekriticky duveruji sluzbam Google. Takze podle me plati posledni veta, kterou jsi napsal -- at uz to zni jakkoliv absurdne.

Jeste jedna vec me napada v souvislosti s web2.0 API: Na jedne strane by sis pral, aby co nejvice webovych sluzeb nabizelo verejne pristupne API a pristup k nemu nebyl pokud mozno nicim podminen. Na druhe strane urcite vis, kolik se najde debilnich programatoru, kteri budou toto API vyuzivat nespravne, pretezovat atd. (Staci se podivat na to, jak libovolne ctecky, webove i newebove, vice i mene web2.0 stahuji RSSka.) Jak myslis, ze se bude resit tohle? Budou se API zdokonalovat tak, aby byli odolne proti "debilnim pristupum", nebo se provozovatele webu na vsechna API vykaslou, stahnou se zase k sobe na svuj pisecek a web2.0 budou realizovat zrcadlovymi efekty ve photoshopu?

Rada bych verila, ze to prvni, ale obavam se, ze pravdou se stane spis to druhe.

[19] (Arthur Dent ) 11.02.2007, 17:35:14 [X] [D]
[18] K tomu poslednímu odstavci: Napíšu o tom v dalším díle. Řešením je "API Licence Key". :) Zatímco "stahování RSS" je dostupné kdekomu (a taky to podle toho vypadá), tak na využití nějakých služeb via API je dost často potřeba, aby se vývojář zaregistroval a požádal o licenci. A když dělá kraviny, tak je mu zablokován přístup. S tímto postupem vřele souhlasím a líbí se mi. Služba je tak veřejně dostupná, ale není "úplně zadarmo" a "anonymní".

"moznost zaplatit si za garantovany pristup" je iluze. U placených služeb si neplatíš žádnou garanci jejich provozuschopnosti, maximálně tak zdání garance. Ve skutečnosti si platíš za to, že máš pocit, že se o to někdo stará líp než kdyby sis neplatila (pche!) a za to, že když se něco stane, tak máš k dispozici telefonní číslo, na kterém můžeš seřvat člověka, který za to nemůže. Skutečný význam placené služby je ten, že dovolí jejímu provozovateli naddimenzovat železo a omezí přístup pouze na ty uživatele, kteří tu službu opravdu potřebují. (Analogie např. s hostingem).

Já tvé tvrzení otočím: Z technického hlediska není podstatný rozdíl mezi placenými a free službami. Jen u těch placených existuje (mylné) přesvědčení, že jsou "nějak" garantované, když jsou placené. ;)

[20] (zirafka - Mail - WWW) 11.02.2007, 19:03:34 [X] [D]
[19] Temi placenymi sluzbami myslim sluzby, kde mam skutecne ve smlouve zenesene jake povinnosti provozovatel ma. Ne takove sluzby, kde je poplatek jen urcity "prispevek na hardware a vyvoj". Ale uznavam, ze takovych sluzeb moc neni...

No kazdopadne se velmi tesim na dalsi dil serialu (-:

[21] (Arthur Dent ) 11.02.2007, 19:40:06 [X] [D]
[20] Můžeš mi říct, jakou webovou (!) placenou službu máš na mysli? Každopádně abychom se zase vrátili do původní linie vyprávění:

1. "zdarma" neznamená "nezabezpečené" a "placené" neznamená "zabezpečené" (a už vůbec ne bezpečné). Viděl jsem zvnitřku dost "placených" služeb na to, abych tomuhle věřil, a to i v záchvatu optimismu.

2. Samosebou si i za webové služby, i za ty dvanula, můžeš zaplatit. Otázka je, zda se tím stanou "jistějšími".

[22] (zirafka - Mail - WWW) 11.02.2007, 23:35:27 [X] [D]
[21] placene webove sluzby, ktere mam na mysli... hmmm... no nejake komercni IS, sluzby medialnich agentur... Ale fakt je, ze jsem mela na mysli hlavne ten hosting, ktery neni zrovna dvakrat webova sluzba.
Jenomze prave hosting je pro web1 klicovy.

Udelam maly ukrok stranou a zkusim jeste jednou vysvetlit, kde vidim ten rozdil mezi zabezpecenosti/zodpovednosti/garantovanosti web1 a web2.0 sluzeb:
web1 podle me funguje takhle: kdyz chci mit garantovany a zabezpeceny webmail, forum, eshop... sezenu si garantovany hosting (verim v jejich existenci) a sezenu si admina, ktery bude zodpovedny za to, ze to pojede.
web2.0: nepotrebuju hosting, svuj software a admina, ktery se mi o nej stara. Jen vyuzivam sluzeb nekoho jineho. Ty sluzby jsou daleko vymakanejsi, nez ty, ktere mam moznost si udelat u sebe na hostingu, mam je temer, nebo uplne zadarmo, ale na druhou stranu proste namam zadnou garanci, ze zitra budou fungovat stejne jako dnes.

Co se tyka faktu, ze zabezpecenost a bezpecnost sluzeb "zdarma" a "placenych" se nejak vyrazne nelisi a to nezavisle na tom, jestli jsou 2.0 nebo ne, tak to s tebou. souhlasim. Jak jsem psala driv -- placenymi sluzbami jsem myslela vyhradne ty, kde mas i nejakou smlouvu, ktera provozovatele zavazuje. A takoveto web2.0 alternativy k sluzbam, ktere si sam budes provozovat na svem hostingu (alespon zatim) neexistuji.

[23] (Arthur Dent ) 12.02.2007, 05:56:11 [X] [D]
[22] Už si rozumíme :)

Po pravdě řečeno jsem přesvědčen, že i u toho hostingu se ti může nakrásně stát, že se jednoho dne ráno probudíš a zjistíš, že weby nejsou, hostingová firma neexistuje a majitel nezvedá telefon. Smlouva nesmlouva. A představ si, že jsi v situaci, že ty weby provozuješ pro někoho třetího a s ním jsi taky uzavřela smlouvu. Pak pán Bú s tebou!

Ale prozradím ti jeden špinavý trik2.0: Služby se snaží mít co nejvíc uživatelů. Proto nabízejí své funkce bezplatně. V takové situaci je příliš rizik na to, aby si provozovatel lajsnul cokoli zaručit. Pokud je ale cti dbalý, chová se jako by zaručil. Co tím chci říct? Inu to, že ztráta dat v důsledku zešílení admina je stejně pravděpodobná jak u placené, tak u neplacené služby, a že spoléhat se na to, že "když si platím, tak jsou data v bezpečí a je zaručeno nějaké chování" je naivita hraničící s indolencí. Chceš-li mít v bezpečí svá důležitá data, ulož si je na několik médií s různým typem záznamu, udělej si z nich balíček a odnes ho do trezoru banky. Když si uděláš takových balíčků víc a rozmístíš je do různých bank, budou data opravdu skoro naprosto v bezpečí. ;)

[24] (dgx - WWW) 12.02.2007, 08:06:14 [X] [D]
> zirafka:

Jak tak čtu o zárukách ze strany provozovatele nebo hostéra, Žirafko, pokud byste chtěli jakožto budoucí hostéři něco podobného také nabízet, pak ani sekundu neváhej mezi fyzickou osobou a společností s ručením omezeným. Jinak si zaděláš na nepředstavitelné životní průs..blémy.

[25] (zirafka ) 12.02.2007, 20:08:21 [X] [D]
[23] To jsem rada (-:

Ano. To, co popisujes se muze stat. Jiste nakonec neni nic. I ten balicek s daty v nekolika bankach mi bude na nic, kdyz se tu treba zacne stavet intergalakticka dalnice. Ale i tak si porad myslim, ze to, co popisujes je mene pravdepodobne, nez ze napriklad dgx zesili (-;

Sice nevim, co znamena slovo indolentni, ale nemyslim si, ze bych tvrdila neco jineho nez ty. Zpoplatneni webovych2.0 sluzeb funguje vetsinou tim stylem, ze admin ma pocit, ze by si za praci kterou dela, neco zaslouzil, uvedomely uzivatel zase ma pocit, ze by mohl neco prispet, nejak vyjadrit vdecnost za to, ze sluzba existuje. Tim mu vznika zaruka asi takova, jako zaruka trvaleho zdravi, kdyz vykonam pout do Lurd.

[24] 2dgx: Achjo. Tak to jsem zase neco prosvihla. Dnes jsem si byla zaridit zivnostak. S temi zarukami na hostingu opravdu pocitam a mozna jsem naivni (nebo mozna i ta vec s tou indulonou), ale za spolehlivost jsem fakt ochotna rucit zivotem. Akorat, ze s tim zivnostakem to tak asi bude skoro doslova, ze?! No uvidime. Do roka a do dne bude srocka. Pokud se toho dozijeme ((-:

[26] (dgx - WWW) 13.02.2007, 07:19:15 [X] [D]
[24] sorry za OT, zkusím stručně: všichni známí nebo rodinní příslušníci, kteří začali před lety podnikat na živ. list, skončili s exekucemi na veškerý majetek a dodnes se hrabou na dně. Bez výjimky! Vážně to přehodnoť, hlavně si uvědom, že nepodnikáš v normálním demokratickém a právním státě, ale v absurdistánu.