Byla vydána nová verze 9.1.0 správce sbírky fotografií digiKam (Wikipedie). Přehled novinek i s náhledy v oficiálním oznámení (NEWS). Vypíchnout lze vylepšené vyhledávání nebo podporu Pixel Motion Photos. Nejnovější digiKam je ke stažení také jako balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo ke spuštění a spustit.
Přihlaste svou přednášku na další ročník konference LinuxDays, který proběhne 3. a 4. října na FIT ČVUT v pražských Dejvicích. Příjem témat poběží do konce prázdnin, pak proběhne veřejné hlasování a následně sestavení programu.
Byla vydána nová verze 2.4.68 svobodného multiplatformního webového serveru Apache (httpd). Řešeno je mimo jiné 13 zranitelností.
Apple na své vývojářské konferenci WWDC26 (Worldwide Developers Conference, keynote) představil řadu novinek. Vypíchnout lze novou generaci Apple Intelligence a zbrusu novou Siri, která dostala název Siri AI. Kvůli Aktu o digitálních trzích (DMA) však funkce Siri AI nebudou v systémech iOS 27 a iPadOS 27 k dispozici uživatelům v Evropské unii.
Byla vydána nová verze 1.18.0 distribučního frameworku Flatpak (Wikipedie), tj. technologie umožňující distribuovat aplikace v podobě jednoho instalačního souboru na různé linuxové distribuce a jejich různá vydání. Přehled novinek na GitHubu. Vypíchnout lze podporu rozhraní /dev/kfd pro výpočty na kartách AMD (AMDKFD).
aMule (Wikipedie), tj. multiplatformní klient pro peer-to-peer sdílení souborů pro sítě eD2k and Kademlia, byl po více než pěti letech od vydání poslední verze 2.3.3, vydán v nové major verzi 3.0.0 (GitHub). S novou webovou stránkou a dokumentací.
Byly vyhlášeni vítězové a zveřejněny vítězné zdrojové kódy (YouTube, GitHub) již 29. ročníku soutěže International Obfuscated C Code Contest (IOCCC), tj. soutěže o nejnepřehlednější (nejobfuskovanější) zdrojový kód v jazyce C.
Evropská komise předložila evropský balíček pro technologickou suverenitu, tedy soubor opatření, která mají posílit kapacity EU v oblasti polovodičů, umělé inteligence, cloudu a open source. To Evropě pomůže stát se lídrem v oblasti umělé inteligence, posílit její digitální autonomii a vytvářet podmínky pro udržitelnější digitální budoucnost.
OpenCV (Open Source Computer Vision, Wikipedie), tj. open source multiplatformní knihovna pro zpracování obrazu a počítačové vidění, byla vydána v nové major verzi 5.
Byla vydána nová verze 9.7 multiplatformní digitální pracovní stanice pro práci s audiem (DAW) Ardour. Přehled novinek, vylepšení a oprav v poznámkách k vydání.
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: