Krádež session id z výpisu phpinfo()
je již nějakou dobu známá technika, která se používá k obcházení atributu HttpOnly
, který JavaScriptu zakazuje přístup k takto označené cookie (např. PHPSESSID
). Mě akorát až teď napadlo řešení, které dovolí phpinfo()
zachovat: ty citlivé údaje prostě zcenzurujeme, čímž phpinfo()
pro útočníka ztratí část své hodnoty.
Říkáme tomu různě: weby, stránky, domény, servery, sajty, internety a spoléháme se na to, že tomu ten druhej bude rozumnět. Možná a možná ne, ale to se dá vždy doladit doplňujícím „počkej, jak jako server, nemyslíš spíš web?“ Jenže různé specifikace a technické dokumenty tuto vymoženost nemohou využít a tak se snaží věci nazývat správnými jmény a jednotně. A to navíc tak skvěle, že pojmy jako origin, site, same origin, same site, eTLD a public suffix se normálně ani nepřekládají, protože pak by tomu zas nikdo nerozuměl. A jak s tím souvisí atraktivita subdomén?
Prohlížeč Chrome (a další, např. Edge) umožňuje přepisovat obsah i hlavičky HTTP odpovědí. O přepisování HTTP hlaviček pro testovací účely jsem psal již dříve, jak přepsat i samotné tělo odpovědi si ukážeme níže. Od Chrome 117 (vyšel v září 2023) se to navíc značně zjednodušilo.
Od roku 2020 je platnost HTTPS certifikátů omezena na 1 rok, přesněji 398 dní, o historii a důvodech jsem tu již psal. Ale tohle omezení platí jen pro certifikáty vydané nějakou veřejnou certifikační autoritou (CA), tedy takovou, kterou do úložiště důvěryhodných kořenových certifikátů v operačním systému a prohlížečích přidal výrobce.
V prohlížeči Chrome (a dalších, např. v Edge) je od verze 113 možné přepisovat HTTP hlavičky v odpovědích ze serveru a lze také nějakou novou přidat. To se může hodit pokud potřebujete upravit třeba nějakou bezpečnostní hlavičku pro testování, protože k přepisu dojde ještě před zpracováním věcí jako např. CSP, takže pro konkrétní stránku můžete upravit Content Security politiku přímo v prohlížeči.
composer audit
Když se v nějaké vámi používané PHP knihovně objeví bezpečnostní chyba, tak máte několik možností jak se o ní dozvědět dříve, než bude pozdě. V jednom z předchozích článků jsem popisoval PHP Security Advisories Database a její použití pomocí Roave Security Advisories i několik dalších způsobů. Všechny zmíněné ale vyžadují mít nebo používat nějaký extra balíček nebo nástroj.
Před nějakou dobou jsem si změnil heslo do Googlu. Na mém iPadu mě to odhlásilo z Google účtu a tak Fotky, Chrome a další aplikace po mě chtěly zase zadat heslo, aby mě přihlásily zpátky. Jediný problém bylo to, že místo Googlovo přihlašovacího formuláře jsem viděl prázdnou bílou stránku, nebo chybovou hlášku, která říkala jen -- (NSURLErrorDomain: -999)
.
Na konci srpna byla v oblíbeném PHP frameworku Nette objevena a obratem opravena zákeřná chyba. Přestože autor frameworku, David Grudl, udělal snad všechno možné i nemožné, někteří se o ní nedozvěděli včas a nestihli tak aktualizovat své weby a webové aplikace. Prozradím vám pár tipů nejen pro PHP, díky kterým dostanete echo o podobných problémech mezi prvními.
V druhé půlce června pořádám další kolo školení, tentokrát online. Vždy odpoledne, za půl peněz.
Prohlížeče se o zneplatnění (revokaci) certifikátu převážně nedozví a tak byste to možná chtěli zkusit ověřit ručně. Existuje několik možností, jak se zeptat Online Certificate Status Protocol (OCSP) serveru, tak si pojďme některé ukázat. Budete potřebovat browser (a nástroj openssl
).
Apple v únoru 2020 na setkání zástupců certifikačních autorit a prohlížečů CA/B Forum v Bratislavě (a později oficiálně) oznámil, že od 1. září 2020 bude maximální délka platnosti TLS certifikátů v Safari (a nejspíš i v celém macOS a iOS a všech aplikacích na nich spuštěných) pouze 1 rok, přesněji 398 dní. V létě toho roku se pak ke stejnému kroku odhodlal i Chrome a Mozilla. A to je skvělé, ale proč vlastně?
NordVPN, poskytovatel VPN služeb, byl někdy v roce 2018 hacknut. V oficiální reakci stojí, že se jednalo jen o jeden server a že to bylo kvůli nezabezpečenému systému pro vzdálenou správu, který na stroji ponechal správce datacentra. Unikly nějaké privátní klíče (to je špatné), podobný problém se prý týkal i dalších poskytovatelů VPN (to je taky špatné), ale o tomhle vlastně psát nechci (to je fajn), o tom si přečtěte jinde.
10 nejlepších značek kávy podle toho, jak moc se jejich názvy používají jako hesla. Protože ne každý výzkum hesel musí být k něčemu dobrý.
Google včera představil další Security Key, který se dá použít pro dvoufaktorovou autentizaci (2FA, Two-Factor Authentication, někdy též dvoufázové ověření, 2-step verification, 2SV) pro Gůglí služby. Tenhle je rovnou vestavěný v Androidu 7+, takže ho už možná máte v kapse, používá Bluetooth (ale není třeba nic párovat) a funguje zatím jen v Chrome a prohlížečích postavených na Chromiu – Google to sám označuje za beta verzi. A to je v podstatě všechno co o tom víme. Používám 2FA všude kde se dá, doporučuji to kudy chodím, takže jsem to prostě musel zkusit.
Včera jsem hledal české weby v databázi „Collection #1“ a dalších („Collection #2“ až „Collection #5“, „BigDB“), dnes jsem se podíval na ty slovenské. Některé slovenské stránky používají i čeští uživatelé a tak mi to přišlo jako dobrý nápad.
Minulý týden se hojně psalo o úniku 773 milionů účtů, kterému se přezdívá „Collection #1“. Ve skutečnosti to je několik let stará kompilace předchozích úniků, ale i tak stojí za to se podívat, které české (a slovenské) weby v této a dalších databázích („Collection #2“ až „Collection #5“, „BigDB“) jsou.
fbclid
pomocí JavaScriptu Přibližně před dvěma týdny začal Facebook přidávat „sledovací“ parameter fbclid
(Facebook click id?) do všech externích odkazů, které uživatelé sdílí. A mě se to nelíbilo, tak ten parametr skrývám.
Společnosti Microsoft, Google, Apple i Mozilla včera shodně oznámily, že z jejich webových prohlížečů Internet Explorer, Edge, Chrome, Safari a Firefox počátkem v polovině roku 2020 odstraní protokoly TLS 1.0 a TLS 1.1. Návštěvníci vašeho webu už je pravděpodobně stejně nepoužívají a tak je můžete na serveru vypnout už dnes. Pojďme si to pomocí „Handshake Simulation“ v SSL Labs Server Testu ověřit.
Ikoně zámečku 🔒, která označuje „zabezpečené“ stránky, se přisuzují různé kouzelné vlastnosti. Třeba to, že označuje jen důvěryhodné weby, které nezneužijí vaše hesla a data. Zámeček z prohlížečů postupně mizí a je to dobře. A proč vlastně?
Před pár týdny byl v Praze a Středočeském kraji spuštěn nový Regionální dopravní systém PID Lítačka. Ten umožňuje kupovat jízdné mobilní aplikací, nahrávat kupóny na platební karty (resp. je spolu spárovat) a ty pak přikládat k náhodným zařízením v dopravních prostředcích. A taky uměl získat odkaz na reset hesla jakéhokoliv uživatele přímo z jeho browseru.
Včera, na moje narozeniny, vyšla nová verze Chrome 68, která začala označovat všechny weby na HTTP jako Not secure, česky Nezabezpečeno (pěknej dárek, díky!). Zatím teda jen s šedým (i)
v kroužku, bez červeného vykřičníku. Spousta hojně navštěvovaných českých webů ale není připravena. A jak jsme se vlastně dostali až sem a co nás čeká?
Začal jsem pracoval na Report URI, na nástroji, který sbírá reporty z prohlížeče v reálném čase. A to už vlastně před rokem. 27. června 2017 jsem totiž udělal první změnu v kódu. O té doby jsem přidal 709 402 řádků a odstranil jich 1 981 599.
security.txt
Přidejte si na web soubor security.txt
a umístěte do něj správné kontaktní údaje, ať lidé, kteří chtějí nahlásit bezpečnostní chyby, nemusí dlouze studovat kam report poslat. K čemu takové informace jsou vám ukážu na jednom konkrétním příkladu.
Ve školeních Úvod do PHP a Objektové PHP pokračuje Martin Hujer, další pokročilejší školení pořádají Péhápkaři. Související info: od března zvyšuji ceny školení bezpečnosti i slevy pro studenty.
Hesla se dnes již necrackují pomocí „rainbow tables“ ani hrubou silou. Takže tohle nejspíš nebyl únik hesel v čitelné podobě, ale někdo těch 750 tisíc hesel vylámal a nahrál na web. Taky jsem je zkusil cracknout.
Nahlásil jsem bezpečnostní zranitelnost typu Stored XSS a chyba byla ověřena, opravena, a záplata otestována a vydána do hodiny. V pátek. Před Vánoci.
Po šesti letech jsem se rozhodl ukončit veřejné školení Úvod do PHP a Třídy a objekty v PHP, v prosinci tedy bude poslední veřejný termín. Připravuji však nějaké nové kurzy.
Používáte pro ukládání uživatelských hesel funkce jako MD5 nebo SHA-1 a chtěli byste to změnit na třeba bcrypt? A chcete to udělat pořádně, tedy ještě před únikem, aby byla chráněna všechna hesla ve vaší databázi? Pojďme si ukázat jak to udělat.
ERR_SPDY_PROTOCOL_ERROR
a chybná HTTP hlavička Při přesunu vašeho webu na výkonnější protokol HTTP/2 se může stát, že Chrome najednou stránku nenačte a místo toho zobrazí jen This site can’t be reached s chybou ERR_SPDY_PROTOCOL_ERROR
. SPDY byl protokol, ze kterého HTTP/2 vychází, nejspíš proto chyba HTTP/2 vůbec nezmiňuje. Ukážu vám, jak to vyřešit pomocí chrome://net-export
.
Čtvrté (a poslední) číslo newsletteru převážně o bezpečnosti, bezpečném vývoji převážně webových aplikací a bezpečnosti převážně uživatelů je konečně tu.
„Náš vývojář používal to stejné heslo i na GitHubu“. Šak co se může stát, ne… kurva docela dost.
Třetí číslo newsletteru převážně o bezpečnosti, bezpečném vývoji převážně webových aplikací a bezpečnosti uživatelů.
Druhé číslo newsletteru převážně o bezpečnosti, bezpečném vývoji převážně webových aplikací a bezpečnosti uživatelů.
První číslo newsletteru převážně o bezpečnosti, bezpečném vývoji převážně webových aplikací a bezpečnosti uživatelů.
Začal jsem sbírat odkazy a témata na newsletter. Tady je jeho nulté číslo.
UR je rychlý a bezpečný webový prohlížeč. Díky vestavěné VPN, blokování reklam, antiviru a dalším vlastnostem vám UR pomáhá chránit vaše soukromí.
Tedy až na to, že nepomáhá. Ta „VPN“ je jenom proxy a navíc spojení mezi prohlížečem a proxy serverem není ani šifrované.
Mohl jsem unést 629 účtů na LinkedInu zaregistrováním smazaných neaktivních e-mailových adres (nebo adres s překlepy) na Seznam.cz. Ale neudělal jsem to, samozřejmě.
Ověřování přihlášení pomocí SMS se nedá moc považovat za „two-factor authentication“ (2FA), protože k získání kódu nepotřebuji konkrétní telefon, ani konkrétní SIM kartu. Na pozadí jedné diskuze popíšu proč a jaké jsou jiné varianty. Něco z toho byste měli používat, pokud to vámi používané služby nabízí, a je celkem jedno jestli tomu budeme říkat 2FA nebo ověřování přihlášení.
Proč jsou důležité šifrované přenosy dat na Internetu – jako třeba HTTPS – se pokusím vysvětlit bez jediného technického výrazu. Samotné „HTTPS“ zmíním až v samotném závěru.
Pokusím se shrnout, co o problému víme, a zabrousím i trochu do technických detailů fungování LastPassu, a tím se pokusím aspoň trochu vyvrátit některé fámy a mýty. Na závěr uvedu pár dobrých rad, jak LastPass více zabezpečit.
A víte, že Seznam má i vlastní mobilní prohlížeče, jak pro Android, tak pro iOS? Přestaňte jásat a zadržte. Než si je do svých chytrých telefonů a jiných pádel nainstalujete, přečtěte si, co jsem o jednom z nich zjistil. Pojďme se tedy podívat, co je na webovém prohlížeči také důležitého a co může nepříjemně ovlivnit vaše soukromí. V závěru se lehce podíváme i na mobilní aplikaci Email.cz.
No, víte, ono to zas taková sranda není, takže o co bude dnešní článek méně zábavný, o to bude stejně (málo) technický. Tak nějak lidsky v něm popíšu pár nejčastějších problémů zabezpečení webů, abyste si pod těmi nulami v hodnocení dokázali představit, jak malé nebo velké problémy se na webech dají nalézt. Skočte si zalít to instantní kafe a pojďme na to.
FPD je jedna z přibližně 17576 třípísmenných zkratek používaných na Internetu a jedna z mála, kde písmeno F neznamená, hmm, třeba friend. Význam zkratky, o kterém bych vám rád povyprávěl je však důležitý pro bezpečnost webových aplikací. FPD totiž v oblasti webové bezpečnosti znamená Full Path Disclosure, do češtiny přeloženo například jako odhalení, nebo raději lépe prozrazení úplné cesty.