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.
Bylo vydáno Eclipse IDE 2026-03 aneb Eclipse 4.39. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.
Ze systému Slavia pojišťovny uniklo přibližně 150 gigabajtů citlivých dat. Jedná se například o pojistné dokumenty, lékařské záznamy nebo přímou komunikaci s klienty. Za únik může chyba dodavatelské společnosti.
Sněmovna propustila do dalšího kola projednávání vládní návrh zákona o digitální ekonomice, který má přinést bezpečnější on-line prostředí. Reaguje na evropské nařízení DSA o digitálních službách a upravuje třeba pravidla pro on-line tržiště nebo sociální sítě a má i víc chránit děti.
ahoj, da se to celkem dobre ohnout pro tve potreby. Uzivatel zada sve jmeno a heslo. Po overeni idetity uzivatele (ma spravne jmeno a heslo), vytahnes id tohoto uzivatele z db. To ulozis do session promenne: $_SESSION['id'] = $uzivatelovo_id; pak v tabulce clanky budes mit sloupec ve kterem budes mit ulozena id uzivatelu kteri se na ni budou moct podivat. kdyz si ji pak uzivate bude chtit zobrazit, posle tvuj skript dotaz do db: select * where (nadpis LIKE 'bla' and allowed_user = '{$_SESSION['id']}'); . Pokud bude mit kazdy uzivatel pristup k pouze sve strance a mimo prihlasovaci nebude moci k zadne sdilene, muzes udelat sloupec allowed_user jako int(tinyint - podle toho co se ti bude hodit). V pripade, ze chces mit nejake stranky, ke kterym bude mit vice (pouze) prihlasenych uzivatelu pristup, udelej sloupec allowed_user treba varchar a v nem, idcka povolenych uzivatelu oddelenych mezerama. Pak dotaz uprav takto: select * where (nadpis LIKE 'bla' and allowed_user = '% {$id} %);
predpokaladam takoveto tabulky:
uzivatele: +----+-------+-------+ | id | jmeno | heslo | | 1 | franta| neco | | 2 | jarda | neco1 | +----+-------+-------+ clanky: +----------------------------+-------------------+ | id | nadpis | allowed_user | obsah_clanku | | 1 | clanek1| 1 | ja sem clanek | | 2 | bla | 2 | blablablablablabla| +----+--------+--------------+-------------------+ps: nejsem php programator a rozhodne ne zkuseny, takze netvrdim, ze je to nejlepsi zpusob jak to udelat, ale myslim ze to muze fungovat
A co normalizace databáze?
(o hashování hesel ani nemluvím)
Sice jsem tak taky začínal, ale udivuje mě, když se každý, kdo umí nainstalovat MySQL a PHPmyadmina, tváří jako databázový analytik
Tak to OK, došel jsem k
varchar a v nem, idcka povolenych uzivatelu oddelenych mezerama.
a pak už jsem neměl chuť číst to dál.
Nejde o nějaké akademické lpjení na normalizovaných datech, ale i z čistě praktických důvodů je lepší udělat samostatnou tabulku, která nahradí ten varchar sloupeček, pomocí níž vyjádříme vazbu 1:N (jeden objekt a N subjektů, které k němu smějí přistupovat).
BTW. Pokud se to udělá takhle, tak se rovnou může použít InnoDB a foreign keys, které ještě lépe zajistí integritu dat. (Slovy PHPkáře - při mazání uživatele není nutné ještě procházet všechny možný tabulky okolo a dívat se, jestli se tam taky náhodnou něco nemá smazat.)
Nebude ta vazba M:N?Jo, bude, nějak jsem se soustředil na to, že k jednomu objektu bude mít práva
n subjektů, ale samozřejmě, že jeden subjekt může mít i práva k m objektům.
Cizí klíče se rozumí snad samo sebou, jinak by to nebyla relační DB, ale jen primitivní wrapper nad souborovým systémem
PHPčkař pak narazí, protože mu záznamy s vazbou nepůjdou smazat a hodí mu to chybu, což bude muset řešit nastavením kaskády na delete v DB (případně zase tím ručním procházením a mazáním).
To, co ti výše radí frEon, je celkem ok (až na tu zrůdnost, kdy by se víc IDček mělo nacpat do varcharu a oddělovat mezerama).
Na svém webu mám ukázkovou aplikaci (velmi jednoduchá bugzilla) Ověřování uživatelů na webu. Je to trochu složitější, protože se tam používá metoda výzva-odpověď a hesla se dvakrát hashují. Ale můžeš si pročíst ty zdrojáky a vzít si z nich, co potřebuješ.
//Connect to database
mysql_connect ( $dbhost, $dbuser, $dbpass)or die("Could not connect: ".mysql_error());
mysql_select_db($dbname) or die(mysql_error());
session_start();
$username = $_POST['username'];
$password = md5($_POST['password']);
$query = "select * from users where username='$username' and password='$password'";
$result = mysql_query($query);
if (mysql_num_rows($result)!=1) {
$error="bad login";
include "login.html";
}
elseif ($username==test and "password= $password") {
include "uzivatel/u.php";
}
elseif ($username==test1 and "password= $password") {
include "uzivatel1/u1.php";
}
elseif ($username==test2 and "password= $password") {
include "uzivatel2/u2.php";
}
else { }
>
Obsah souboru register.php je nsledujici:
//Database Information
$dbhost = "localhost";
$dbname = "test";
$dbuser = "root";
$dbpass = "root";
//Connect to database
mysql_connect( $dbhost, $dbuser, $dbpass)or die("Could not connect: ".mysql_error());
mysql_select_db($dbname) or die(mysql_error());
$name = $_POST['name'];
$email = $_POST['email'];
$username = $_POST['username'];
$password = md5($_POST['password']);
// lets check to see if the username already exists
$checkuser = mysql_query("SELECT username FROM users WHERE username='$username'");
$username_exist = mysql_num_rows($checkuser);
if($username_exist > 0){
echo "I'm sorry but the username you specified has already been taken. Please pick another one.";
unset($username);
include 'register.html';
exit();
}
// lf no errors present with the username
// use a query to insert the data into the database.
$query = "INSERT INTO users (name, email, username, password)
VALUES('$name', '$email', '$username', '$password')";
mysql_query($query) or die(mysql_error());
mysql_close();
echo "You have successfully Registered";
Vim ze toto reseni neni mocdobre ale jine jsem nedokazal vymyslet. Nyni resim to, aby uzivatele nemohli obejit logovaci formular a dostat se primo na svoji stranku. Co se tyce vyse uvedeneho kodu prosim o pripadnou kritiku nebo vylepseni, budu za ne vdecny. Diky Zdenek
Tiskni
Sdílej: