Jesus Christ... SQL Injection? PHP Data Objects su tam uz od PHP 5.0 z roku 2004. Trochu fail ze sa za tu dobu coderi nenaucili pouzivat:
$sth = $dbh->prepare('SELECT `name`, `colour`, `calories` FROM `fruit` WHERE `calories` < ? AND `colour` = ?');
$sth->execute(array($_GET['calories'], $_GET['colour']));
Skladat zo stringov sql query a mysliet pri tom na escapovanie mi nepride ako overeny koncept. Nie je ani lahsie, ani kratsie, ani efektivnejsie, ani prehladnejsie, ani bezpecnejsie. Len dementnejsie. Prepared statements tu su uz minimalne 2 dekady. Uz aj prehistoricke perlie DBI ich podporovalo.
Vyhodou prepared statement nie je len escaping. Staci si pozriet definiciu: Precompilation and DB-side caching of the SQL statement leads to overall faster execution and the ability to reuse the same SQL statement in batches.
Chybou je zrejme ze stale sa da volat priame query, kedze PHP je jazyk s vyssim percentom patlalov. Ked sa to programatori nevedia naucit, jazyk by ich mal viest k bezpecnemu kodu
Ak sa pouzije questionmark syntax, tak treba pouzit pole, aby sa vedelo v akom pradi sa maju placeholdery nahradzat. Ale PHP umoznuje aj bindovanie:
$sth = $dbh->prepare('SELECT `name`, `colour`, `calories` FROM `fruit` WHERE `calories` < :calories AND `colour` = :colour');
$sth->bindParam(':calories', $_GET['calories'], PDO::PARAM_INT);
$sth->bindParam(':colour', $_GET['colour'], PDO::PARAM_STR, 12);
Pripadne bindovanie cez asociativne pole:
$sth->execute(array(':calories' => $_GET['calories'], ':colour' => $_GET['colour']));
No to je hezký.
Já ale říkám, že kdyby od začátku mysql_query mělo syntaxi
mysql_query($handle, "select * from users where username='?' and password='?';", $username, hash($password));
tak to ti lidi budou schopni pobrat, kdežto prepared statement může být na __nezkušeného__ programátora příliš složité.
Ber to tak, že když vlezeš na některý vejšky, tak ti na PHPko řeknou blefujnedík.
Prostě spousta wordpress pluginů je psaná třeba šikovnejma středoškolákama...
Myslis ze to je tim PHP? Ukaz mi kus kodu kolem SQL v libovolnym jazyce ... a jednoznacna idetifikace patlala je uz to, ze tam bude select * .
Nebo cokoli na tema try-catch ... nejdriv neco zavola a pak resi, jestli to padlo, coz trebas uzasne funguje na veci typu "zadej cislo" "zadej druhy cislo" ... vysledek A+B = ... jo aha, ona spousta jazyku nema problem secist stringy.
Ok, vylepsime to, budem zjistovat jestli to je cislo ... maly moment ... 0xac ... dobry, prej to je cislo.
Jazyk je od toho aby veci umoznoval ne aby je znemoznoval.
"je neuvěřitelné, jak velké množství webů s napadnutelnými rozšířeními existuje" a to je jeden z důvodů proč děláme konferenci WordCamp a vzděláváme uživatele tohoto redakčního systému, aby tvořili lepší, rychlejší a bezpečnejší weby.
WordCamp je oficiální konference řídící se zvyklostmi americké centrály, a tak k ní patří i Kodex chování, který ukazuje otevřenost a slušnost této komunity. Podobný kodex chování naleznete na všech světových WordCampech. Chybí v něm krádež a třeba i vražda, protože to jsou už ze své podstaty trestné činy, které jsou proti právnímu řádu, takže se již předpokládá, že nebudou páchány.
Myslím si, že je dobré předem účastníky informovat, jak by se na podobné akci měli chovat i jaké chování mohou očekávat. Například prezidentské debata na Primě by takový kodex bývala snesa také ;-)
Krádež je přestupek. Stejně jako to, když třeba někdo někde běhá nahej, nebo jinak sexuálně obtěžuje.
Nicméně, co když bych se zeptal, jestli by v tom kodexu nemělo být něco o tom, že se účastníci budou pravidelně mýt, a nebudou kálet na zem?
Že je to emerickej zvyk, a že to tak dělaj všechny wordcampy mi došlo. Mně to ale přijde jako naprostá zbytečnost a pitomost. Stejně jako ty předpokládáš, že nikoho nenapadne tam krást, tak já předpokládám, že tam nikdo nebude mít tendence dělat ani ty ostatní věci. Já bych prostě předpokládal, že lidé vědí, jak se mají chovat. Jakože... ..pokud
lidi okolo wordpressu skutečně potřebují mít takovejhle kodex, tak se s nima v životě nechci potkat.
Když už chtějí mít kodex chování, napsal bych do něj prostě "chovejte se jako lidi, nebo vás vykážeme."
Podle této logiky se v životě nechceš potkat ani s lidmi kolem:
Drupalu - http://drupalironcamp.com/code-of-conduct
PHP obecně - https://2017.phpce.eu/cz/coc
ale ani kolem
Pythonu - https://cz.pycon.org/2018/about/code/
Postgre - https://p2d2.cz/rocnik-2018/kodex-chovani
a vlastně ani kolem
Linuxu - https://devconf.cz/coc.cs
Díky za informaci, to bych do nich neřekl. Hlavně to drupalistické We.
Asi vliv nějakejch šílenejch američanů...
..polovina američanů je schopna říct, že by byli "less likely to support a president candidate who is atheist", ale zbytku světa budou cpát takovéhle nesmysly.
Trochu mi to připomíná, jak se někdo soudil s výrobcem mikrovlnek za to, že na ni nenapsal, že se v ní nesmí sušit domácí mazlíčci....
A nejpikantnejsi na tom je, ze skutecna autorita (Community Working Group) rekla celkem jasne, ze nic proti CoC neudelal avsak pan diktátor se rozhodl, ze by to mohlo ohrozit neco (dopln si sam jestli projekt, komunitu, priposranost z mensin nebo proste jen venture kapitál) a hotovo.
BTW CWG "odsoudila" pouze toho rakouskyho práskače Klausiho.
Odstavec
"Buď vnímavý ke svému okolí a k dalším návštěvníkům konference. Jsi-li svědkem nebezpečné situace nebo vidíš-li někoho v nouzi, uvědom ihned organizátory."
a poznámka
Obtěžování zahrnuje ... neustálé narušování přednášek či jiného programu;....
jsou jako vytržené ze školního řádu, či z pravidel dětského tábora.
Samozřejmě velmi rádi uvítáme sestavení lepšího Kodexu chování. Pro zaslání můžeš využít kontakty na https://2018.prague.wordcamp.org/kontakt/
Nebo je zde i druhá možnost a tou je Contributing Day, který se bude konat v neděli 25.2. - zde se budou řešit překlady a právě věcí související s organizováním podobných akcí, takže zrovna Kodex chování by se zde mohl v konstruktivní diskuzi vyladit.
Člověka při sledování tohodle šílenství napadne, že celý smysl oné tolerance, safe spaces a dalších nesmyslů není ani v tom aby vzniklo přátelské a pozitivní prostředí, ale příprava co nejsnadnější agrese proti každému, kdo si dovolí mít nahlas jen malinko jiný názor než někdo jiný.
Mimochodem, opravdu pánům organizátorům připadá, že atmosféru akce dokáže vylepšit věčný strach o to, zda si naprosto normální, neutrální a dobře míněnou větu někdo nevyloží jako osobní útok a nebude z toho vyvozovat důsledky,
Dost mi to připomíná minulý režim, to si taky člověk musel dávat pozor co říká, kdo ho u toho slyší a co by si z toho mohl domyslet a nahlásit, a nic příjemného to nebylo.
Mě především udivuje, kolik emocí dokáže vzbudit pouhá existence Kodexu chování, který prakticky nikoho nijak neomezuje. Organizujeme již 5. ročník a rozhodně jsem si nevšiml, že by kodex způsoboval nějakou atmosféru strachu. Na fóru kolem toho vznikla diskuze, která má přes 200 příspěvků...
Já osobně vidím hlavní účely kodexu chování na WordCampu v těchto bodech (už jsem je jednou zmiňoval):
a) naše konference je oficiální akci podle pravidel WordCamp centrály, která dbá na kvalitu akce, a tak bychom Code of Conduct měli mít. Případné incidenty hlásíme zpět centrále (a je třeba je tedy s něčím srovnat) a dle tohoto feedbacku se mohou například upravit doporučení pro organizátory dalších akcí, aby se vyvarovali zbytečných nepříjemností. V kontextu k jedné konferenci se to možná zdá zbytečné, ale WordCampů již po celém světě proběhlo téměř 800 a při tomto množství již sdílení informací organizátorům velmi pomáhá. Ano, je pravda, že se to řeší především v USA, nicméně oni ty podmínky nastavují.
b) lidé si často neuvědomí, že jejich chování může být někomu dalšímu nepříjemné - typicky se jedná třeba sexistické narážky (a to může být například tričko s nevhodným nápisem), které mu mohou přijít strašně vtipné, ale protistranu mohou opravdu urazit. Zatím jsme u nás nic takového řešit nemuseli, ale vím, že se to bohužel občas děje. Kdyby k tomu náhodou došlo, máme připravena pravidla, na kterých můžeme jednoznačně ukázat, co je špatně - je to porušení podmínek, které daný člověk svou účastí odsouhlasil. Code of Conduct je tak nástroj, který nám umožní slušnou a oficiální cestou vyřešit problémy, které by mohly nastat (a doufáme, že nenastanou) a není potřeba do toho zatahovat všechny strany - na bedra si to berou organizátoři.
c) je to i informace pro účastníky, že uděláme co můžeme proto, aby se na konferenci cítili dobře i když více fandí třeba Drupalu, nebo Joomle. Nikoho z organizátorů tak třeba neuslyšíte na konferenci konstatovat, že CMS XY je fuj a WP je jediná správná cesta. Naopak se aktivně zajímáme o tom jak "konkurenční" komunity fungují, jak řeší problémy (například jaké měl dopady přechod Drupalu na Symfony) a jak se z toho můžeme sami poučit.
d) je to apel na Open Source Citizenship - jak být platným členem Open Source komunity = spolupráce, sdílení nápadů, reportování chyb, konstruktivní kritika,... Rozdíl mezi "máš tam chybu, jsi hlupák, hahaha, na programování už nikdy nešahej" a "máš tam chybu, takhle bych se jí vyvaroval, tady jsou k tomu zdroje, prosím o opravu" bohužel mnoho lidí nevnímá tak, jak by vnímat mělo...
e) Code of Conduct je běžnou zvyklostí globálních konferencí, mít konferenci podle globálních zvyklostí pomáhá při jednání s globálními sponzory.