Byla vydána (𝕏) nová verze 24.7 open source firewallové a routovací platformy OPNsense (Wikipedie). Jedná se o fork pfSense postavený na FreeBSD. Kódový název OPNsense 24.7 je Thriving Tiger. Přehled novinek v příspěvku na fóru.
Binarly REsearch upozorňuje na bezpečnostní problém PKFail (YouTube) v ekosystému UEFI. Stovky modelů zařízení používají pro Secure Boot testovací Platform Key vygenerovaný American Megatrends International (AMI) a jeho privátní část byla při úniku dat prozrazena. Do milionů zařízení (seznam v pdf) po celém světě tak útočníci mohou do Secure Bootu vložit podepsaný malware. Otestovat firmware si lze na stránce pk.fail. Ukázka PoC na Linuxu na Windows na YouTube.
Mobilní operační systém /e/OS (Wikipedie) založený na Androidu / LineageOS, ale bez aplikací a služeb od Googlu, byl vydán ve verzi 2.2 (Mastodon, 𝕏). Přehled novinek na GitLabu. Vypíchnuta je rodičovská kontrola.
Společnost OpenAI představila vyhledávač SearchGPT propojující OpenAI modely umělé inteligence a informace z webů v reálném čase. Zatím jako prototyp pro vybrané uživatele. Zapsat se lze do pořadníku čekatelů.
Distribuce Linux Mint 22 „Wilma“ byla vydána. Je založená na Ubuntu 24.04 LTS, ale s desktopovým prostředím Cinnamon (aktuálně verze 6.2), příp. MATE nebo Xfce, balíkem aplikací XApp, integrací balíčků Flatpak a dalšími změnami. Více v přehledu novinek a poznámkách k vydání.
Příspěvek na blogu Truffle Security: Kdokoli může přistupovat ke smazaným a privátním repozitářům na GitHubu.
Byla vydána nová verze 14 integrovaného vývojového prostředí (IDE) Qt Creator. Podrobný přehled novinek v cgitu. Vypíchnout lze podporu rozšíření v Lua.
Byla vydána verze 1.80.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.
Apple oznámil, že v beta verzi spustil své Apple Maps na webu. Podporován je také webový prohlížeč Chrome. Ne však na Linuxu.
Portál Stack Overflow po roce opět vyzpovídal své uživatele, jedná se především o vývojáře softwaru, a zveřejnil detailní výsledky průzkumu. Průzkumu se letos zúčastnilo více než 65 tisíc vývojářů. Z Česka jich bylo 710. Ze Slovenska 246.
Zdravím!
Podle RFC2616 (8.2.3; 10.1.1 a 14.20.) je možné při HTTP POST/PUT(atd.), aby dříve, než klient pošle vlastní tělo žádosti na server, server otestoval podle hlaviček, zda-li obsah přijme nebo ne. Server pak může odpovědět pomocí "100 Continue" (v tom případě klient pokračuje v posílání těla žádosti), nebo hodit chybovou hlášku (např. "417 Precondition Failed"); v tom případě už klient nic neposílá.
Problém ovšem je, jak toho dosáhnout. Pokud použiji header() dvakrát, tj. jednou s kódem 100 a podruhé s jiným, pak při druhém použití fce header() prudí PHP s tím, že "headers already sent"...
Dá se s tím něco (rozumného) dělat?
Díky!
Jj, díky, pomohlo to, lépe řečeno, pomohlo bufferování nevypínat (lépe řečeno vypnout jenom to, co je potřeba). Nakonec, tohle funguje:
if ($_SERVER["HTTP_EXPECT"]=="100-continue" && $_SERVER["SERVER_PROTOCOL"]=="HTTP/1.1")
{
header("HTTP/1.1 100 Continue", false);
ob_flush();
}
Proč by to mělo být na h***? Pokud chce člověk korektně např. naimplementovat věci jako GroupDAV, pak ani jinou možnost nemá...
Jde o to, že zřejmě už posíláte nějaká data, třeba i nechtěně, a přitom nemusíte.
Momentálně tedy děláte něco takového:
Klient(GET/POST/PUT)-----------> Server Klient <--------------(hlavičky) Server Klient <-----------(nějaká data) Server Klient <--------(další hlavičky) Server Klient <------------------(data) Server
a chcete tohle:
Klient(GET/POST/PUT)-----------> Server Klient <--------------(hlavičky) Server Klient <--------(další hlavičky) Server Klient <------------------(data) Server
Ta "nějaká data" mohou být např. nechtěné odřádkovánínebo mezera v nějakém inkludovaném souboru (za posledním ?>) nebo nějaké echo nebo print ještě v první fázi práce skriptu, kdy ještě nechcete klientovi posílat data.
To je kravina, jak jsem psal, hlášku "header already sent" to píše pouze pokud použiji dvakrát po sobě header() se stavovým kódem, nikoliv když použiji header() jen jednou - což dokazuje, že data nikde mezitím neposílám. IMHO bude chyba někde v implementaci php...
header
se třetím parametrem a replace
nastaveným na true
?
header('x', TRUE, 100); header('x', TRUE, 200);Mimochodem, odpověď
100-Continue
můžete odpovědět jedině v případě, kdy klient pošle Expect: 100-continue
.
Tiskni
Sdílej: