Společnost JetBrains v listopadu 2021 představila nové IDE s názvem Fleet. Tento týden oznámila jeho konec. Od 22. prosince 2025 již nebude možné Fleet stáhnout.
Byl vydán Mozilla Firefox 146.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 146 bude brzy k dispozici také na Flathubu a Snapcraftu.
Před rokem převzala Digitální a informační agentura (DIA) vlastnictví a provoz jednotné státní domény gov.cz. Nyní spustila samoobslužný portál, který umožňuje orgánům veřejné moci snadno registrovat nové domény státní správy pod doménu gov.cz nebo spravovat ty stávající. Proces nové registrace, který dříve trval 30 dní, se nyní zkrátil na několik minut.
IBM kupuje za 11 miliard USD (229,1 miliardy Kč) firmu Confluent zabývající se datovou infrastrukturou. Posílí tak svoji nabídku cloudových služeb a využije růstu poptávky po těchto službách, který je poháněný umělou inteligencí.
Nejvyšší správní soud (NSS) podruhé zrušil pokutu za únik zákaznických údajů z e-shopu Mall.cz. Incidentem se musí znovu zabývat Úřad pro ochranu osobních údajů (ÚOOÚ). Samotný únik ještě neznamená, že správce dat porušil svou povinnost zajistit jejich bezpečnost, plyne z rozsudku dočasně zpřístupněného na úřední desce. Úřad musí vždy posoudit, zda byla přijatá opatření přiměřená povaze rizik, stavu techniky a nákladům.
Organizace Free Software Foundation Europe (FSFE) zrušila svůj účet na 𝕏 (Twitter) s odůvodněním: "To, co mělo být původně místem pro dialog a výměnu informací, se proměnilo v centralizovanou arénu nepřátelství, dezinformací a ziskem motivovaného řízení, což je daleko od ideálů svobody, za nimiž stojíme". FSFE je aktivní na Mastodonu.
Paramount nabízí za celý Warner Bros. Discovery 30 USD na akcii, tj. celkově o 18 miliard USD více než nabízí Netflix. V hotovosti.
Nájemný botnet Aisuru prolomil další "rekord". DDoS útok na Cloudflare dosáhl 29,7 Tbps. Aisuru je tvořený až čtyřmi miliony kompromitovaných zařízení.
Iced, tj. multiplatformní GUI knihovna pro Rust, byla vydána ve verzi 0.14.0.
FEX, tj. open source emulátor umožňující spouštět aplikace pro x86 a x86_64 na architektuře ARM64, byl vydán ve verzi 2512. Před pár dny FEX oslavil sedmé narozeniny. Hlavní vývojář FEXu Ryan Houdek v oznámení poděkoval společnosti Valve za podporu. Pierre-Loup Griffais z Valve, jeden z architektů stojících za SteamOS a Steam Deckem, v rozhovoru pro The Verge potvrdil, že FEX je od svého vzniku sponzorován společností Valve.
RTFM - Read Tumič's FlaMes!
Internetem se poslední dobou šíří taková zlá, nemilá, ošklivá věc - spam v komentářích k článkům, záznamech v knihách hostů (jak říkáme my češi - guestboocích) a vůbec všem, co má nějaký formulář. Následující článek popisuje jednoduchou ochranu proti botům napsanou v PHP.
Systém je postaven na "tradičním" rozpoznávání obrázků, k jejihž generování je použita knihovna GD. Základem jsou tyto 4 jednoduché funkce:
function nahodny_text($delka) {
for ($i=0; $i<$delka; $i++) {
$rnd = rand(1,35);
$rnd = ($rnd < 10) ? $rnd+48 : $rnd+55;
if ($rnd == 79) $rnd++;
$string .= chr($rnd);
}
return $string;
}
function obraz_textu($text, $cesta) {
$im = imagecreate(strlen($text)*10, 15);
imagecolorallocate($im, 255, 255, 255);
$barva = imagecolorallocate($im, 0, 0, 0);
imagestring($im, 5, 0, 0, $text, $barva);
$soubor = $cesta.'/'.rand(0,255).'.png';
imagepng($im, $soubor);
return $soubor;
}
function pridej_kod($soubor, $kod) {
$fp = fopen($soubor, 'a');
ignore_user_abort(1);
for($i=0; $i<3; $i++) {
if (flock($fp, LOCK_EX)) {
fwrite($fp, $kod."\n");
flock($fp, LOCK_UN);
break;
}
usleep(100);
}
fclose($fp);
ignore_user_abort(0);
}
function pouzity_kod($soubor, $kod) {
$fp = fopen($soubor, "r");
while (!feof($fp)) {
if ($kod == fgets($fp, strlen($kod)+1)) {
fclose($fp);
return true;
}
}
fclose ($fp);
return false;
}
První vytváří náhodný řetězec znaků (1-9,A-Z bez O) dané délky. Druhá z daného řetězce vytváří obrázek. Třetí a čtvrtá slouží k uložení respektivě zjištění již použitého kontrolního kódu.
Vlastní kontrola pak probíhá následovně: Při každém zobrazení formuláře pro odeslání dat je vygenerován "čerstvý" kontrolní kód:
while (true) {
$kod = nahodny_text(delka_kodu);
if (!pouzity_kod(codefile, $kod))
break;
}
$obrazek = obraz_textu($kod, imgdir);
Ten je převeden na obrázek s náhodným jménem, který se umístí někam k formuláři pro odeslání. K formuláři jsou přidány 2 položky - textové pole pro vlastní kód a skryté pole s hashem kódu. Při vytváření hashe je kód potřeba doplnit o nějakou tajnou "sůl":
<img src="<?php echo $obrazek ?>" alt="Kontrolní kód"/> <input type="text" name="kod"/> <input type="hidden" name="hash" value="<?php echo md5($kod.salt) ?>"/>
Při odeslání formuláře je kód doplněn o sůl a spočítán hash. Pokud se vypočtený hash shoduje s tím z tajného pole formuláře a daný kontrolní kód nebyl dosud použit, je příspěvek přijat, v opačném případě je odmítnut.
if(md5($_POST['kod'].salt) == $_POST['hash']
AND !pouzity_kod(codefile, $_POST['kod'])) {
pridej_zaznam();
pridej_kod(codefile, $_POST['kod']);
} else
echo "Neplatný kontrolní kód!";
Mušky a mouchy řešení:

Tam, kde si můžete výše zmíněné problémy dovolit zanedbat (a to je většina reálných aplikací) nicméně bude ochrana fungovat dobře, navíc s minimálním "opruzem" pro uživatele.
Zdrojové kódy guestbooku s uvedenou ochranou si můžete stáhnout z mých stránek, jak to vypadá v praxi můžete vidět zde.
Tiskni
Sdílej:
Čo sa týka tej pripomienky 2.1, tak nechápem prečo ten rand obmedzuješ. Je to zbytočné a môže to narobiť kopec problémov. Možno ti išlo o to, aby si tie súbory nemusel mazať, ale aj 255 png súborov je podľa mňa dosť. Pritom zmazať ich nie je problém. Názov súboru si zapamätám v session, alebo pošlem v input hidden a hneď pri overovaní ho zmažem. Pritom názov toho obrázku by mohol radšej byť nejaké 20 znakové slovo. Tým je prevdepodobnosť prepísania prakticky nulová.
Problém je ten, že ne každej (spíš jenom mizivý množství) vygenerovanej obrázek je taky "odeslanej zpět". Jistě, šlo by napsat nějakou funkci, která by procházela adresář a mazala soubory starší než T, ale automatický přepisování obrázků je prostě ještě jednodušší
A ad velikost - 255 obrázlů zabírá přibližně 33kB...
Tak to je přesně to, čemu se chci vyhnout. Jak už tady zaznělo, půlka textů nejde přečíst. I tak jednoduchej obrázek, jako generuju v tom scriptu odfiltruje dneska všechny roboty i script-kiddies. Na projekty typu "ochrana SMS brány mobilního operátora", kde se už vyplatí se nějakým OCR zabývat se holt musí použít něco jinýho.
Přes SESSION? A jak si tím pomůžu?! Jinak 35kB obrázků mi opravdu nepřijde tak moc, abych si s tim v roce 2006 lámal hlavu a co se týče tý 770, tak to už nechápu vůbec. Pokuď to maj bejt unixová práva, tak nechápu, co tě nutí mít to nastavený takto, ta CAPTCHA to ale rozhodně neni...
define("salt", "w6er54we65r4");
define("imgdir", "../captcha");
define("codefile", imgdir."/codes.txt");
jinak to nebude fungovat bez prostudování kódu
CAPTCHA je mrtvá. Při použití DIVTCHA jsme na stejné úrovni uživatelské přívětivosti, ale bezpečnostně mnohem výše. Obrázky odpadají také.
http://www.quicky.cz/novinky/antispamova-ochrana-divtcha-8.html
Ukázka: