Agent umělé inteligence Claude Opus ignoroval uživatelovu odpověď 'ne' na dotaz, zda má implementovat změny kódu, a přesto se pokusil změny provést. Agent si odpověď 'ne' vysvětlil následovně: Uživatel na mou otázku 'Mám to implementovat?' odpověděl 'ne' - ale když se podívám na kontext, myslím, že tím 'ne' odpovídá na to, abych žádal o svolení, tedy myslí 'prostě to udělej, přestaň se ptát'.
Po 8. květnu 2026 už na Instagramu nebudou podporované zprávy opatřené koncovým šifrováním. V chatech, kterých se bude změna týkat, se objeví pokyny o tom, jak si média nebo zprávy z nich stáhnout, pokud si je chcete ponechat.
V lednu byla ve veřejné betě obnovena sociální síť Digg (Wikipedie). Dnes bylo oznámeno její ukončení (Hard Reset). Společnost Digg propouští velkou část týmu a přiznává, že se nepodařilo najít správné místo na trhu. Důvody jsou masivní problém s boty a silná konkurence. Společnost Digg nekončí, malý tým pokračuje v práci na zcela novém přístupu. Cílem je vybudovat platformu, kde lze důvěřovat obsahu i lidem za ním. Od dubna se do Diggu na plný úvazek vrací Kevin Rose, zakladatel Diggu z roku 2004.
MALUS je kontroverzní proprietarní nástroj, který svým zákazníkům umožňuje nechat AI, která dle tvrzení provozovatelů nikdy neviděla původní zdrojový kód, analyzovat dokumentaci, API a veřejná rozhraní jakéhokoliv open-source projektu a následně úplně od píky vygenerovat funkčně ekvivalentní software, ovšem pod libovolnou licencí.
Příspěvek na blogu Ubuntu upozorňuje na několik zranitelností v rozšíření Linuxu o mandatorní řízení přístupu AppArmor. Společně jsou označovány jako CrackArmor. Objevila je společnost Qualys (technické detaily). Neprivilegovaný lokální uživatel se může stát rootem. Chyba existuje od roku 2017. Doporučuje se okamžitá aktualizace. Problém se týká Ubuntu, Debianu nebo SUSE. Red Hat nebo Fedora pro mandatorní řízení přístupu používají SELinux.
Byla vydána nová verze 19 integrovaného vývojového prostředí (IDE) Qt Creator. Podrobný přehled novinek v changelogu.
Bitwig Studio (Wikipedie) bylo vydáno ve verzi 6. Jedná se o proprietární multiplatformní (macOS, Windows, Linux) digitální pracovní stanici pro práci s audiem (DAW).
Společnost Igalia představila novou linuxovou distribuci (framework) s názvem Moonforge. Jedná se o distribuci určenou pro vestavěné systémy. Vychází z projektů Yocto a OpenEmbedded.
Google Chrome 146 byl prohlášen za stabilní. Nejnovější stabilní verze 146.0.7680.71 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 29 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
D7VK byl vydán ve verzi 1.5. Jedná se o fork DXVK implementující překlad volání Direct3D 3 (novinka), 5, 6 a 7 na Vulkan. DXVK zvládá Direct3D 8, 9, 10 a 11.
$from ='05/17/2012 10:15:00';
$to ='05/17/2012 10:30:00';
$day ='5/17/2012';
echo '{ "dtstart": "'.$from.'", "dtend": "'.$to.'", "day": "'.$day.'" },';
tak to fičí ok, ale akonáhle pred to dám hocijakú funkciu, tak to ajax nespracuje, napr. toto (prepíšem na konci tie isté premenné čo v prvom skripte, ale aj tak to nejde dobre):
$from= preg_replace('/[\x00-\x1F\x80-\xFF]/', '',$data[0]->time_from);
$to = preg_replace('/[\x00-\x1F\x80-\xFF]/', '',$data[0]->time_to);
$day = preg_replace('/[\x00-\x1F\x80-\xFF]/', '',$data[0]->day);
$from ='05/17/2012 10:15:00';
$to ='05/17/2012 10:30:00';
$day ='5/17/2012';
echo '{ "dtstart": "'.$from.'", "dtend": "'.$to.'", "day": "'.$day.'" },';
$data
$from, $to, $date by se mely stejne priradit rucne definovane hodnoty, takze problem bude spise v tom, ze tam dojde k nejake notice/warning nebo tak neco, co pak rozbije ten vystup..
Array(
[0] => array (
[id] => 24
[time_from] => 05/17/2012 10:15:00
[time_to] => 05/17/2012 11:30:00
[day] => 05/17/2012
)
)
<?php
class Data{
public $time_from = '05/17/2012 10:15:00';
public $time_to ='05/17/2012 10:30:00';
public $day ='05/17/2012';
};
$data = Array(0 => new Data());
$from= preg_replace('/[\x00-\x1F\x80-\xFF]/', '',$data[0]->time_from);
$to = preg_replace('/[\x00-\x1F\x80-\xFF]/', '',$data[0]->time_to);
$day = preg_replace('/[\x00-\x1F\x80-\xFF]/', '',$data[0]->day);
echo '{ "dtstart": "'.$from.'", "dtend": "'.$to.'", "day": "'.$day.'" },';
jako byste přímo zapsal toto:, na konci toho výpisu. Zkusil bych ji dát pryč, co to udělá.
Array(
[0] => stdClass Object
(
[id] => 24
[time_from] => 05/17/2012 10:15:00
[time_to] => 05/17/2012 11:30:00
[day] => 05/17/2012
)
)
v čom by tam mohol byť do kelu problém?
echo json_encode(array("dtstart"=>$from,"dtend"=>$to,"day"=>$day));
eval(), která si s těmi zpětnými lomítky hravě poradí.
json_encode() přidává uvozovky, podstrčený kód se tedy předá jako řetězec.
{
"dtstart": "05/17/201210: 15: 00",
"dtend": "05/17/201210: 30: 00",
"day": "05/17/2012"
}
v pořádku. Že by zase nějaká JSON obskurnost?
<![CDATA[ … ]]>
json_encode() si s tím musí umět poradit tak, abych při json_decode() dostal identická data.
Když ukládám data do DB, tak je také nesmím escapovat, abych je měl v DB přesně byte po bytu tak, jak je tam potřebuji mít.
json_decode() a pak htmlspecialchars(). V HTML nemá JSON co pohledávat.
<script>
<?php
echo json_encode(array("dtstart"=>"<![CDATA[","dtend"=>"05/17/2012 10:15:00"));
?>
</script>
nebo
<script>
<?php
echo json_encode(array("dtstart"=>"<script>","dtend"=>"05/17/2012 10:15:00"));
?>
</script>
což mi rozbije výstup.
Případně když budu vypisovat jinam (atribut, jiný formát), může se tam rozbít něco jiného. Proto je potřeba, aby escapoval ten, kdo ví*, kam se vypisuje. A tudíž je to polovičaté escapování ve funkci json_encode() nadbytečné a povede akorát ke zmatkům a chybám – stejně jako ty PHP Magic Quotes – programátoři se budou spoléhat na to, že můžou jen tak přilepit návratovou hodnotu funkce do výstupu a nebudou ji escapovat a špatně dopadnou.
Ta funkce má i volby – trochu by pomohla JSON_HEX_TAG, která zneškodní ty < >, ale stále tam zbudou & a ty budou dělat neplechu (neexistující entity). Takže je potřeba přidat ještě JSON_HEX_AMP. A už to není tak jednoduché a možná tam jsou i další díry…
Je to takový neunixový přístup, jedna funkce se toho snaží dělat příliš mnoho a nakonec to dělá blbě. Daleko lepší mi přijde to rozdělit – mít jednu spolehlivou funkci na generování JSONu a jinou spolehlivou funkci na escapování (pro různé výstupní formáty) a tyto dvě funkce zřetězit:
$výstup = bezpečněEscapujProDanýVýstupníFormát(generujNějakáData($vstup));*) což může být programátor, který zavolá patřičnou funkci, nebo třeba nějaký inteligentní šablonovací systém, který zná kontext.
<script>
<?php
echo htmlspecialchars(json_encode(array("dtstart"=>"&<![CDATA[","dtend"=>"05/17/2012 10:15:00")));
?>
</script>
bezpečněEscapujProDanýVýstupníFormát(). Jenže pak je nějaké přidávání zpětného lomítka před / zbytečnost a nemá tam co dělat – akorát to někoho svede k chybě.
*) relativně – zase to zbytečně převádí " na ", přestože uvozovky v textových uzlech (uvnitř elementů) klidně být můžou a je potřeba je převádět jen v atributech – a to ještě jen v těch, kde je hodnota zavřená do uvozovek – zatímco v <element atribut='nějaká "hodnota" s uvozovkami'/> klidně být můžou.
Tiskni
Sdílej: