Tvůrcem nejpopulárnější kryptoměny bitcoin, který se skrývá za pseudonymem Satoši Nakamoto (Satoshi Nakamoto), je britský kryptograf Adam Back. Na základě vlastní investigativní práce to tvrdí americký deník The New York Times (NYT). Několik indicií podle autorů jasně ukazuje na to, že Back a Nakamoto jsou stejný člověk. Jde mimo jiné o podobný odborný a osobnostní profil či totožné chyby a manýry v psaném projevu.
Google Chrome 147 byl prohlášen za stabilní. Nejnovější stabilní verze 147.0.7727.55 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Vylepšeny byly také nástroje pro vývojáře. Přehled novinek v Chrome DevTools 145 až 147 také na YouTube.
Vývojáři z Laboratoří CZ.NIC vydali nové verze aplikací Datovka (Datovka 4.29.0, Mobilní Datovka 2.6.2). V případě desktopové verze přibyly možnosti projít všechny uložené zprávy, zkontrolovat časy expirací časových razítek a přerazítkovat datové zprávy, které lze v ISDS přerazítkovat. Novinkou je také možnost vytahovat myší ze seznamu ZFO soubory datových zpráv, tento úkon jde udělat i pomocí tlačítek Ctrl+C. Nová verze Mobilní Datovky přináší jen drobné úpravy.
MicroPython (Wikipedie), tj. implementace Pythonu 3 optimalizovaná pro jednočipové počítače, byl vydán ve verzi 1.28.0. Z novinek lze vypíchnout novou třídu machine.CAN.
Michael Meeks, CEO společnosti Collabora, na apríla oznámil, nebyl to ale apríl, že nadace The Document Foundation zastřešující vývoj kancelářského balíku LibreOffice vyloučila ze svých řad všechny zaměstnance a partnery společnosti Collabora, tj. více než třicet lidí, kteří po mnoho let přispívali do LibreOffice. Nadace The Document Foundation po několika dnech publikovala oficiální vyjádření. Přiznává pochybení při zakládání
… více »Protože je už po aprílu, můžou strahováci opět zveřejnit program další Virtuální Bastlírny, aniž by připravená témata působila dojmem, že jde o žert. Vězte tedy, že v úterý 14. dubna (změna!!!) od 20:00 proběhne VB, kde se setkají bastlíři, technici, učitelé i nadšenci do techniky a kde i vy se můžete zapojit do družného hovoru, jako by všichni seděli u pomyslného piva. Co mají bastlíři tento měsíc na srdci? Pravděpodobně by nás musel zasáhnout
… více »Byla vydána verze 26.1 aneb čtvrtletní aktualizace open source počítačového planetária Stellarium (Wikipedie, GitHub). Vyzkoušet lze webovou verzi Stellaria na Stellarium Web.
VOID (Video Object and Interaction Deletion) je nový open-source VLM model pro editaci videa, který dokáže z videí odstraňovat objekty včetně všech jejich fyzikálních interakcí v rámci scény (pády, kolize, stíny...) pomocí quadmaskingu (čtyřhodnotová maska, která člení pixely scény do čtyř kategorií: objekt určený k odstranění, překrývající se oblasti, objektem ovlivněné oblasti a pozadí scény) a dvoufázového inpaintingu. Za projektem stojí výzkumníci ze společnosti Netflix.
Design (GitHub) je 2D CAD pro GNOME. Instalovat lze i z Flathubu. Běží také ve webovém prohlížeči.
Příspěvek na blogu herního enginu Godot představuje aplikaci Xogot přinášející Godot na iPad a iPhone. Instalovat lze z App Storu. Za Xogotem stojí Miguel de Icaza (GitHub) a společnost Xibbon.
$set["nazev"] = "aaa";
$set["url"] = "bbb";
$set["cat"] = "ccc";
$set["stat"] = "ddd";
mysql_query("UPDATE cat SET ".implode("=".implode($set).", ", array_keys($set))." WHERE id = '".$_POST['id']."'");
tohle potřebuji vyplodit :(
mysql_query("UPDATE cat SET nazev="aaa", url="bbb", cat="ccc", stat="ddd" WHERE id = '".$_POST['id']."'");
ale už vážně nevím jak dál :( Děkuji předem za ochotu a pomoc
Řešení dotazu:
... WHERE id = '".$_POST['id']."' ...Takhle ošetření vstupu rozhodně nevypadá.
id jenom číslo, a když ne, tak skončí :).</troll>
if($_POST['id'] == 12) {
... WHERE id = '".$_POST['id']."' ...
}
else {
die("franto mas to blbe");
}
btw: nerikam, ze je to stastne reseni a videl jsem i horsi reseni, ale jde to
Jen rikam ze nez se zacne odsuzovat nekdo za neco tak treba by to chtelo odpoved:
hele mas chybu v tom a tom tak ti to nejede a chtelo by to resit radeji tak nebo onak
A ne mu nadavat do volu a sql inj a ja nevim ceho jeste.
Odpovidat na konkretni dotaz nebudu protoze uz tu na to nekdo odpovedel s tema apostrofama.
$set["nazev"] = "'aaa'"; $set["url"] = "'bbb'"; ...Ale to by se Orlando nedozvěděl, jaké že tam má chyby a následně by je ještě dlouho opakoval. Navíc je tam ještě pár dalších chyb, které jsou hezky vidět, když se místo funkce mysql_query() použije obyčejné echo.
Tady ti stejně každej bude jen naznačovat že jsi nula a až si to vyřešíš sám tak každej řekne že stejně máš špatnou koncepci. Nečekej že by ti zde někdo řekl "má se to dělat tak a tak a tady je ukázka". Poradna zde klesla na "bouchněte si..." .
V produkční praxi nikdo po nikom "hello world" nechce. A u každého projektu, který začíná jako "hello world" s apostrofy hrozí, že se potom začne používat a růst a potom tam ten bezpečnostní průser zůstane. Proto si myslím, že je nutné, dělat věci správně již od začátku.
Odpověď, kterou bys tady rád viděl, je hned úplně první. Tazatel odpoveď dostal a mohl se zeptat, co to je PDO a Prepared statement. Celá diskuse vnikla na základně jeho odmítavé reakce a já sám reaguji nikoliv na původní dotaz (ten už tu byl několikrát odpovězen), ale na reakci ohledně smyslu poradny. A trván na tom, poradna má sloužit k tomu, aby se věci dělali správně. Ne jen poradit, jak rozchodit nějaký bastl.
Miluju lidi co napisou "hello word" za pouziti 30 objektu, protoze je to "spravne" misto aby napsali echo("hello word"); protoze to je prece spatne (ikdyz se po nich nic vic nechce).Miluju lidi, kteří přijdou do diskuze psát totální sračky a cítí se při tom strašně inteligentně.
Chci tim rict ze odpoved by mela byt: Nemas tam apostrofy a imho lepsi reseni by bylo pouzit napr. PDO protoze ti osetri sql inj. ktery ti zde hrozi jestli nemas poradne osetrene vstupy.Takové odpovědi jsem tu viděl a dotyčný nad nimi ohrnuje nos.
A aby nekdo nenapadal moji anonymitu: http://www.basak.cz, o PHP neco vim a jak rikam, neobhajuju jeho reseni, ja bych to resil jinak, ale reaguji na to jak je zde napadan.Přijde mi, že si pleteš napadeného s člověkem, který kouše do podané ruky. To se lidem stává a nevyčítám ti to, jen tě na to upozorňuju.
Nečekej že by ti zde někdo řekl "má se to dělat tak a tak a tady je ukázka".Jestli sis nevšiml, an on nechce poradit, jak se to dělat má. Ale chce poradit, jak se to dělat nemá. Nad tím tady dost možná nikdo nebude chtít ztrácet čas, ať si zaplatí doučko, jestli chce někoho, kdo bude pracovat podle jeho představ.
Poradna zde klesla na "bouchněte si..." .Tak sis bouchnul do poradny, a co dál?
implode, nechápu, na co se ptáte. Několik lidí tady si myslí, že je to potřeba opravit jinak, a napsali vám jak.
Když se v poradně zeptáte, jak zatlouct hřebík, že to určitě nějak půjde šroubovákem, buďte rád, že jste se dozvěděl, že na zatloukání hřebíků se používá kladivo a šroubovákem vám to moc dobře nepůjde. Pokud na použití šroubováku k zatloukání trváte, je to váš problém, ale nedivte se, že nikdo nechce trávit čas vymýšlením toho, jak by takovou hloupost šlo udělat.
To jste mi poradili, všichni plnou hubu SQL injection ale, že by někdo poradil to ne, jediné co tady tazatel poslední dobou dostane je vysmech!!!Trhni si nohou a jdi se zeptat maminky. Co jiného ti na to mám říct, aby to bylo ještě slušné?
$id=intval($_POST['id']);
$set[]=sprintf("%s='%s'","nazev",mysql_real_escape_string($nazev);
$set[]=sprintf("%s='%s'","url",mysql_real_escape_string($url);
$query="UPDATE cat SET ".implode(", ",$set)." WHERE id=$id;";
Dá se to zjednodušit pomocí funkce array_map(), ale to by na tebe bylo asi moc náročné. Ale jak už jsem psal (nejen já), použití parametrizovaného dotazu je mnohem jednodušší.
A ještě něco: Připadá mi velmi podivné, když někdo stringy nedává do apostrofů a čísla jimi obaluje. Má to být přesně naopak.
mysql_query("UPDATE `cat` SET
`nazev` = '".mysql_real_escape_string($_POST["nazev"])."',
`url` = '".mysql_real_escape_string($_POST["url"])."'
WHERE `id` = ".intval($_POST["id"])."");
je k ničemu a nejde bezpečně použít. Fakt to nechápu
$update=$db->prepare("UPDATE cat SET nazev=:nazev, url=:url WHERE id=:id;");
$update->execute(array(':nazev'=>$_POST['nazev'],':url'=>$_POST['url'],':id'=>$_POST['id']));
Řekl bych, že tohle je velmi blízko tvému původnímu požadavku. Jen je potřeba opustit zastaralý ovladač mysql a naučit se PDO. Existuje i kratší zápis, ale ten v manuálu snadno najdeš. Místo názvů parametrů jsou pak jen otazníky a parametry jsou poziční.
mysql_real_escape(), který – pokud použijete správnou verzi PHP se správnou verzí MySQL – pravděpodobně bude fungovat. Lepší je ale dělat to rovnou správně a použít parametrické dotazy.
"WHERE id = '".$_POST['id']."'"zatímco v citovaném
"WHERE `id` = ".intval($_POST["id"]).""
function dvojice($key,$val) {
$value=mysql_real_escape_string($val);
return "$key='$value'";
}
$id=intval($_POST['id']);
$query="UPDATE cat SET ".implode(", ",array_map('dvojice',array_keys($set),$set))." WHERE id=$id;";
Je to jen momentální nápad, jak by se to také dalo udělat. Dalo by se to upravit i do podoby vhodné pro parametrizované dotazy.
Tiskni
Sdílej: