Webdav
WebDAV (z angl. Web-based Distributed Authoring and Versioning) je rozšíření HTTP protokolu verze 1.1 o metody COPY, LOCK, MKCOL, MOVE, PROPPATCH a UNLOCK, které umožňuje pracovat se soubory na WWW serveru.
Výhodou tohoto protokolu je, že využívá stejný HTTP protokol, jako webové služby a porty 80 (HTTP) a 443 (HTTPS) jsou - na rozdíl od portů, přes které fungují jiné komunikační protokoly - obvykle průchozí, aby se uživatelé mohli z vnitřní sítě dostat k webovým stránkám. Proto umoňuje přenášení souborů na server i přes relativně striktně nastavený firewall nebo proxy.
FTP protokol, určený k přenášení souborů po síti, je starší než HTTP protokol. Jeho návrh pochází již z r. 1986 - z doby, kdy ještě nikoho nenapadlo uvažovat o potencionálních možnostech zneužití. Veškerá data se jím přenášela v čitelné podobě - včetně přihlašovacích údajů, takže případnému škůdci stačilo kdekoliv po trase odchytit dostatečné množství paketů a pak v nich tyto údaje vyhledat.
V těch dřevních dobách webu kdy byl editor webových stránek součástí některých prohlížečů se k přenosu souborů z klienta na server zpočátku využíval pouze integrovaný FTP klient. Protože v r. 1997 ještě neexistovala pro WebDAV žádná funkční implementace, byla specifikace FTP protokolu rozšířena o přidané bezpečnostní prvky. Teprve zhruba od r. 2003 začaly některé webové servery nabízet jako alternativu pro upload souborů také WebDAV. Ovšem v té době už byl integrovaný wysiwyg editor pouze v Mozille - poslední verze, která jej ještě obsahovala (1.7.13) byla vydaná na jaře 2008.
WebDAV měl význam především pro wysiwyg editory HTML stránek, jako byla Amaya, Frontpage nebo editor v Mozille, ovšem ty se hodily pouze pro správu statického webu. Internetový boom v závěru 20. století ale vynesl do popředí weby s dynamicky generovaným obsahem, kde finální podoba webové stránky závisela na interpretaci kódu stránky na straně serveru v kombinaci s renderovacími schopnostmi jádra webového prohlížeče. Přístup k souborům s využitím WebDAVu byl, především kvůli potenciálnímu riziku při zneužití - zbytečný. A většina programátorů webový aplikací byla zvyklá používat FTP klienta, takže o to ani nebyl příliš zájem.
WebDAV se stal zajímavou alternativou až s nástupem chytrých mobilních zařízení s trvalým přístupem s internetové síti. A to pro svůj potenciál využitelný ke sdílení uživatelských dat mezi pracovní stanicí a mobilním telefonem.
Popis metod
- PROPFIND
- vytáhni vlastnosti souboru
- PROPATCH
- změň resp. zruš nějakou vlastnost souboru při atomické operaci
- MKCOL
- vygeneruj obsah adresáře
- COPY
- zkopíruj soubor z jedné adresy na druhou
- MOVE
- přenes soubor z jedné adresy na druhou
- LOCK
- zamkni soubor
- UNLOCK
- odstraň zámek
Server
HTTP protokol s rozšířením pro WebDAV je ve své podstatě podobně otevřený protokol jako FTP, umí-li však systém na klientském zařízení svou komunikace se serverem šifrovat pomocí SSL, lze považovat tento přenos dat za dostatečně bezpečný. A protože SSL šifrování dnes zvládají prakticky všechny používané platformy - včetně těch mobilních - začalo se WebDAVU využívat pro sdílení souborů s osobními daty, jako jsou sdílené kalendáře, adresáře, poznámky aj.
- WsgiDAV
- jWebDAV server, napsaný v pythonu, který využívá na WSGI - což jsou objekty které umožňují integrovat webové služby ve skriptech. Stejné objekty využívají jako základ pro komunikaci s klienty i jiné specializované servery napsané v pythonu, jako je např. Radicale - server pro správu kalendářů.
- Apache
- je především využívaný jako webový server, který však ale umožňuje se zavedeným modulem mod_dav používat také WebDAV přístup.
- Nginx
- je opensource server, který může fungovat také jako reverzní HTTP proxy, nebo proxy server pro IMAP/POP3 pro různé domény.
- lighttpd
- Webový server
Klienti
Klienti pro MS Windows
Připojení na WebDAV server je možné rovnou z MS systémů, ale bohužel je to jedna velká tragédie, protože každá verze potřebuje přiohnout trochu jiným způsobem záznam v registru. Proto se také na MS Windows WebDAV moc nepoužívá.
Alternativní připojení na WebDAV server nabízejí různé alternativní aplikace třetích stran - vesměs placené. Existuje však akceptovatelná alternativa, poměrně slušně fungující, kterou je plugin do poměrně rozšířeného souborového manažeru Total Commander
Problémy s připojením na WebDAV u MS Windows
Připojení na WebDAV server, které bývalo u MS Windows 2000 relativně jednoduchou operací, je verze od verze nástupnických MS Windows jeden velký opruz. Microsoft u svého klienta iplementoval u WebDAVu bezpečnější typ autentizace digest poněkud nestandardním způsobem - kontrolovaný kontrolní součet totiž zahrnuje i doménové jméno klienta. Takže v praxi je nepoužitelná, neboť správce by musel při zavádění uživatele znát všechna doménová jména strojů ze kterých by na server přistupoval a na to aby měl po ruce křišťálovou kouli.
Naštěstí se jí bylo možné u MS Windows XP vyhnout změnou hodnoty klíče UseBasicAuth
z 0 na 1, kterým se změnilo nastavení výchozího autentizačního mechanizmu na basic.
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters] "UseBasicAuth"=dword:00000001
Soubor:WebDav workaround XP.reg
Připojení bylo možné realizovat dvěma způsoby.
http://hostitel/sdílený_adresář
nebo
\\hostitel\sdílený_adresář
Windows XP totiž obsahovaly dva WebDAV klienty - "mini-redirector" a "webfolders client", a každý z nich fungoval trochu jinak.
U dalších verzí se v Microsoftu sice poučili a pro MS Windows Vista a výš nastavili výchozí hodnotu klíče BasicAuthLevel
na 1, jenže pouze pro komunikaci zabezpečenou přes SSL. A pro nešifrovanou komunikaci klient stále trval na autentizaci typu digest. Aby bylo možné používat autentizační mechanismus basic i u HTTP protokolu je opět nutné hrábnout do registru a změnit hodnotu klíče BasicAuthLevel
na 2.
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters] "BasicAuthLevel"=dword:00000002
Soubor:WebDav workaround Vista.reg
- 0
- Autentizace typu basic je vypnuta. Lze použít pouze autentizaci typu digest
- 1
- Autentizace typu basic se použije pouze v případě, že je komunikace WebDAV serverem šifrovaná (přes HTTPS)
- 2 nebo vyšší
- Autentizace typu basic se použije jak v případě šifrované komunikace (HTTPS), tak nešifované (HTTP)
Navíc, v systému zůstal k dispozici již pouze jeden WebDAV klient - mini-redirector takže u Windows Vista bylo nutné připojit sdílený adresář pouze s následující syntaxí:
\\hostitel\sdílený_adresář
U Windows Vista, je-li WebDAV autorizován přes SSL pak je třeba do cesty doplnit že má jít přes SSL
\\hostitel@SSL\sdílený_adresář |
Linux
Připojení WebDAV pod linuxem je záležitostí naprosto triviální, pokud máte v jádře zaveden modul fuse (což je dnes většinou naprosto běžná věc) a nainstalovány utility pro davfs (v Debianu aktuálně instalační balík davfs2
). Pro připojení pak stačí sdílený adreář namountovat příkazem:
root@stroj:~# mount -t davfs http://hostitel/sdílený_adresář bod_připojení
resp.
user@stroj:~$ sudo mount -t davfs http://hostitel/sdílený_adresář bod_připojení
V případě že je WebDAV autorizovaný se vás systém během procesu připojení zeptá na uživatelské jméno a heslo.
Pokud chcete aby se adresář připojoval ihned po startu, nebo aby jej bylo možné připojovat pod běžným uživatelem, je třeba nastavit mountování v souboru /etc/fstab
, viz příklad:
http://hostitel/sdílený_adresář bod_připojení davfs user,no_netdev,use_proxy 0 0
Adresář sdílený přes WebDAV neumožňuje pracovat s linky a to jak "tvrdými" tak se symlinky |
Klienti pro linux
Klientskou aplikací pro linuxovou příkazovou řádku je např. cadaver ( http://www.webdav.org/cadaver/ ). Hodí se zvláště v případě, kdy uživatel nemá práva k použití příkazu mount.
Mac OS X
Android
BlackBerry
Připojení na jiných OS
- http://www.cer.jhu.edu/index.cfm?pageID=326
- Postup připojení adresáře sdíleného přes WebDAV pod Mac OS X
- http://ajaxian.com/archives/javascript-webdav-client
- Javascriptový klient pro použití přes AJAX, v některých prohlížečích však nemusí fungovat. Implementací tohoto klienta je Ajaxfilebrowser http://www.webdavsystem.com/ajaxfilebrowser Na jeho stránkách je k dispozici i online demo.
Externí linky
http://en.wikipedia.org/wiki/WebDAV - Wikipedia
http://interval.cz/clanky/zaklinadlo-jmenem-webdav/ - série článků na interval.cz