GNU Octave lze nově používat ve webovém prohlížeči v JupyterLite s jádrem Xeus-Octave.
Od 3. do 16. listopadu proběhnou Dny AI 2025. V úterý 11. listopadu proběhne Open source AI day v Red Hatu v Brně.
Nová čísla časopisů od nakladatelství Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 158 (pdf) a Hello World 28 (pdf).
Vývojáři GIMPu nově vydávají oficiální snap balíčky GIMPu. Jsou sestavovány přímo v jejich CI (Continuous Integration) systému.
Správce sbírky fotografií digiKam byl vydán ve verzi 8.8.0. Jedná se o převážně opravné vydání provázené aktualizacemi knihoven. Novinky zahrnují implicitní použití systémového barevného profilu monitoru, import/export hierarchie štítků, editační nástroj rozostření aj.
Steve Jobs a superpočítač Cray-1 budou vyobrazeny na pamětních jednodolarových mincích vyražených v příštím roce v rámci série Americká inovace. Série má 57 mincí, tj. 57 inovací. Poslední 4 mince budou vyraženy v roce 2032.
Byl zveřejněn průběžně aktualizovaný program konference OpenAlt 2025 o otevřeném softwaru a datech, IT bezpečnosti, DIY a IoT. Konference proběhne o víkendu 1. a 2. listopadu v prostorách FIT VUT v Brně. Vstup je zdarma.
Senát včera opětovně nepřijal návrh ústavního zákona, který měl do Listiny základních práv a svobod zakotvit právo občanů platit v hotovosti nebo být off-line. Návrh předložila skupina senátorů již v roce 2023. Senát dnes návrh neschválil, ale ani nezamítl. Pokud by ho přijal, dostala by ho k projednání Sněmovna a vyjádřila by se k němu vláda.
V programovacím jazyce Go naprogramovaná webová aplikace pro spolupráci na zdrojových kódech pomocí gitu Forgejo byla vydána ve verzi 13.0 (Mastodon). Forgejo je fork Gitei.
Společnost Eclypsium se na svém blogu rozepsala o bezpečnostním problému počítačů Framework. Jedná se o zranitelnost v UEFI umožňující útočníkům obejít Secure Boot.
/var/lib/aplikace/dokumenty
. Samotná aplikace je uložena ve /var/www/jmeno_serveru/aplikace
. Použitá distribuce je Ubuntu 6.06LTS, pokud by to někoho zajímalo. O co jde: v konfiguráku Apache mám zhruba toto:
<VirtualHost jmeno_serveru:443> DocumentRoot /var/www/jmeno_serveru <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/jmeno_serveru> Options FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> Alias /dokumenty /var/lib/aplikace/dokumenty SetEnvIf REFERER "jmeno\.serveru\.cz" access_granted <Location /dokumenty> Order deny,allow deny from all allow from env=access_granted </Location> SSLEngine On SSLCertificateFile /etc/apache2/ssl/server.crt SSLCertificateKeyFile /etc/apache2/ssl/server.key </VirtualHost>Aplikace je tedy přístupná přes
https://jmeno_serveru.cz/aplikace
. Tímto konfigurákem jsem chtěl zajistit to, že přístup do adresáře /dokumenty
bude povolen jen přesměrováním z webu aplikace pomocí
Na Linuxu to funguje, na Windows nikoliv. Připomínám, že na obojím používáme Firefox 2.0. Otázka tedy zní: dělám něco špatně já, je to chyba Firefoxu na Windows nebo jde mnou nastíněný problém vyřešit nějak elegantně jiným způsobem? Díky.
<?php header("Content-Type: application/octet-stream"); header("Pragma: no-cache"); header("Cache-Control: no-cache"); header("Expires: ".GMDate("D, d M Y H:i:s")." GMT"); header("Content-Disposition: attachment; filename=\"$jmeno_souboru\""); readfile($jmeno_souboru_i_s_cestou); ?>PHP skript vytvoří vhodnou hlavičku a zašle jako obsah onen soubor. Řešení je to jiné, ale umožňuje např. počítání uživatelů, kteří soubor nejen začali stahovat, ale i dostahovali.
Content-Disposition: attachment
. Jo kdyby slo rict neco jako Content-Disposition: inline
nebo tak, to by byla jina Jo kdyby slo rict neco jakoA proč by to nešlo?Content-Disposition: inline
nebo tak, to by byla jina
Na Linuxu to funguje, na Windows nikoliv. Připomínám, že na obojím používáme Firefox 2.0. Otázka tedy zní: dělám něco špatně já, je to chyba Firefoxu na Windows nebo jde mnou nastíněný problém vyřešit nějak elegantně jiným způsobem? Díky.Nemáte na těch Windows nějaký "firewall" nebo proxy, který likviduje http-referer hlavičku? Na něco podobného jsem párkrát narazil u jedné webové aplikace, a pokaždé za to mohlo nějaké "bezpečnostní udělátko".
$_SERVER['HTTP_REFERER']
) a funguje jak má jak na Windows, tak na Linuxu. Problém je, že to nefunguje v Apachi. I když... V logu se referer zobrazuje správně (https://jmeno_serveru.cz/aplikace
), dokonce i ten soubor se zdá se načítá, nicméně v půlce se to zastaví a ve status baru Firefoxu se zobrazí Zastaveno.
$_SESSION['logged_in']
, která se nastaví na 1
po úspěšném přihlášení. Měl jsem za to, že kombinací mechanismů se bezpečnost zvyšuje a mate případného útočníka. Aplikačka je psána pro vnitrofiremní účely, nemá ambice být _extra_ bezpečná, ale snažím se. I tak, pokud tedy znáš lepší mechanismus, jak redukovat přístup k webowé stránce pomocí přihlášení v klasickém HTML formuláři, a za pomoci PHP, sem s tím.
Měl jsem za to, že kombinací mechanismů se bezpečnost zvyšuje a mate případného útočníka.Ani moc ne. Vpodstatě pokud máš obrané mechanismy zařazené v sérii, tj. útočník musí překonat všechny, tak úroveň zabezpečení odpovídá nejsilnějšímu článku a ten zbytek jen trošku zdržuje. Pokud máš obrané mechanismy paralelně, tj. útočník musí překonat jen jeden (např. dva druhy přístupu k databázi), tak úroveň zabezpečení odpovídá tomu nejslabšímu článku a zbytek se neuplatní vůbec. Samozřejmě má smysl mít na začátku triviální obranu, která odfiltruje 90 % útočníků a sníží zátěž serveru, ale nemůžeš na to spoléhat. Dobrým příkladem je třeba kontrola formulářů javascriptem, což lze sice lehce obejít, ale odlehčí to serveru od chyb uživatelů.
Ano, tak to mám uděláno. Jenže skriptu se musí předat jméno souboru, který se má stáhnout (pomocí GET
). Takže URL volaného skriptu vypadá nějak takto:
https://jmeno_serveru.cz/aplikace/stahni.php?soubor=xxxxxx.pdfJak zabráníš tomu, aby tuhle URL někdo zadal do browseru přímo? Jen tak, že v tom skriptu otestuješ, že uživatel je ověřen (to je uloženo v session) a že se tam tudíž dostal odkazem z aplikačky.
Co se týče použití cest v názvu souboru tak to snad nehrozí, mám definovánu proměnnou $docRoot = /var/lib/aplikace/dokumenty
a ve výsledku skript volá něco jako
@readfile($docRoot . "/" . $_GET['soubor'])
basename($_GET['soubor'])
.
Tiskni
Sdílej: