Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 160 (pdf).
Izrael od února zakáže dětem používat v prostorách základních škol mobilní telefony. Podle agentury AFP to uvedlo izraelské ministerstvo školství, které zdůraznilo negativní dopady, které na žactvo používání telefonů má. Izrael se tímto krokem přidává k rostoucímu počtu zemí, které dětem ve vzdělávacích zařízeních přístup k telefonům omezují.
Internetová společnost Google ze skupiny Alphabet pravděpodobně dostane příští rok pokutu od Evropské komise za nedostatečné dodržování pravidel proti upřednostňování vlastních služeb a produktů ve výsledcích vyhledávání. V březnu EK obvinila Google, že ve výsledcích vyhledávání upřednostňuje na úkor konkurence vlastní služby, například Google Shopping, Google Hotels a Google Flights. Případ staví Google proti specializovaným
… více »Byl oznámen program a spuštěna registrace na konferenci Prague PostgreSQL Developer Day 2026. Konference se koná 27. a 28. ledna a bude mít tři tracky s 18 přednáškami a jeden den workshopů.
Na webu československého síťařského setkání CSNOG 2026 je vyvěšený program, registrace a další informace k akci. CSNOG 2026 se uskuteční 21. a 22. ledna příštího roku a bude se i tentokrát konat ve Zlíně. Přednášky, kterých bude více než 30, budou opět rozdělené do tří bloků - správa sítí, legislativa a regulace a akademické projekty. Počet míst je omezený, proto kdo má zájem, měl by se registrovat co nejdříve.
Máirín Duffy a Brian Smith v článku pro Fedora Magazine ukazují použití LLM pro diagnostiku systému (Fedora Linuxu) přes Model Context Protocol od firmy Anthropic. I ukázkové výstupy v samotném článku obsahují AI vygenerované nesmysly, např. doporučení přeinstalovat balíček pomocí správce balíčků APT z Debianu místo DNF nativního na Fedoře.
Projekt D7VK dospěl do verze 1.0. Jedná se o fork DXVK implementující překlad volání Direct3D 7 na Vulkan. DXVK zvládá Direct3D 8, 9, 10 a 11.
Byla vydána nová verze 2025.4 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem nových nástrojů v oficiálním oznámení na blogu.
Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) zveřejnil Národní politiku koordinovaného zveřejňování zranitelností (pdf), jejímž cílem je nejen zvyšování bezpečnosti produktů informačních a komunikačních technologií (ICT), ale také ochrana objevitelů zranitelností před negativními právními dopady. Součástí je rovněž vytvoření „koordinátora pro účely CVD“, jímž je podle nového zákona o kybernetické … více »
Vývojáři KDE oznámili vydání balíku aplikací KDE Gear 25.12. Přehled novinek i s náhledy a videi v oficiálním oznámení.
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: