abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
včera 16:24 | Nová verze

Byla vydána Mageia 5.1. Jedná se o první opravné vydání verze 5, jež vyšla v červnu loňského roku (zprávička). Uživatelům verze 5 nepřináší opravné vydání nic nového, samozřejmě pokud pravidelně aktualizují. Vydání obsahuje všechny aktualizace za posledního téměř půldruhého roku. Mageia 5.1 obsahuje LibreOffice 4.4.7, Linux 4.4.32, KDE4 4.14.5 nebo GNOME 3.14.3.

Ladislav Hagara | Komentářů: 4
včera 13:42 | Pozvánky

V Praze probíhá konference Internet a Technologie 16.2, volné pokračování jarní konference sdružení CZ.NIC. Konferenci lze sledovat online na YouTube. K dispozici je také archiv předchozích konferencí.

Ladislav Hagara | Komentářů: 0
2.12. 22:44 | Komunita

Joinup informuje, že Mnichov používá open source groupware Kolab. V srpnu byl dokončen dvouletý přechod na toto řešení. V provozu je asi 60 000 poštovních schránek. Nejenom Kolabu se věnoval Georg Greve ve své přednášce Open Source: the future for the European institutions (SlideShare) na konferenci DIGITEC 2016, jež proběhla v úterý 29. listopadu v Bruselu. Videozáznam přednášek z hlavního sálu je ke zhlédnutí na Livestreamu.

Ladislav Hagara | Komentářů: 22
2.12. 15:30 | Zajímavý projekt

Společnost Jolla oznámila v příspěvku Case study: Sailfish Watch na svém blogu, že naportovala Sailfish OS na chytré hodinky. Využila a inspirovala se otevřeným operačním systémem pro chytré hodinky AsteroidOS. Použita je knihovna libhybris. Ukázka ovládání hodinek na YouTube.

Ladislav Hagara | Komentářů: 8
2.12. 14:15 | Nová verze

Byla vydána verze 7.1.0 skriptovacího jazyka PHP používaného zejména k vývoji dynamických webových stránek. Jedná se o první stabilní verzi nejnovější větvě 7.1. Přehled novinek v dokumentaci. Podrobnosti v ChangeLogu. K dispozici je také příručka pro přechod z PHP 7.0.x na PHP 7.1.x.

Ladislav Hagara | Komentářů: 2
2.12. 12:55 | Nová verze

Google Chrome 55 byl prohlášen za stabilní. Nejnovější stabilní verze 55.0.2883.75 tohoto webového prohlížeče přináší řadu oprav a vylepšení (YouTube). Opraveno bylo také 36 bezpečnostních chyb. Mariusz Mlynski si například vydělal 22 500 dolarů za 3 nahlášené chyby (Universal XSS in Blink).

Ladislav Hagara | Komentářů: 4
2.12. 11:55 | Pozvánky

Máte rádi svobodný software a hardware nebo se o nich chcete něco dozvědět? Přijďte na 135. sraz spolku OpenAlt, který se bude konat ve čtvrtek 8. prosince od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Sraz bude tentokrát tématický. Bude retro! K vidění budou přístroje jako Psion 5mx nebo Palm Z22. Ze svobodného hardwaru pak Openmoko nebo čtečka WikiReader. Přijďte se i vy pochlubit svými legendami, nebo alespoň na pivo. Moderní hardware má vstup samozřejmě také povolen.

xkucf03 | Komentářů: 0
2.12. 00:10 | Nová verze

Byla vydána verze 3.2 svobodného systému pro detekci a prevenci průniků a monitorování bezpečnosti počítačových sítí Suricata. Z novinek lze zmínit například podporu protokolů DNP3 a CIP/ENIP, vylepšenou podporu TLS a samozřejmě také aktualizovanou dokumentaci.

Ladislav Hagara | Komentářů: 0
1.12. 21:00 | Nová verze

Byla vydána beta verze Linux Mintu 18.1 s kódovým jménem Serena. Na blogu Linux Mintu jsou hned dvě oznámení. První o vydání Linux Mintu s prostředím MATE a druhé o vydání Linux Mintu s prostředím Cinnamon. Stejným způsobem jsou rozděleny také poznámky k vydání (MATE, Cinnamon) a přehled novinek s náhledy (MATE, Cinnamon). Linux Mint 18.1 bude podporován až do roku 2021.

Ladislav Hagara | Komentářů: 0
1.12. 16:42 | Nová verze

Byl vydán Devuan Jessie 1.0 Beta 2. Jedná se o druhou beta verzi forku Debianu bez systemd představeného v listopadu 2014 (zprávička). První beta verze byla vydána v dubnu letošního roku (zprávička). Jedna z posledních přednášek věnovaných Devuanu proběhla v listopadu na konferenci FSCONS 2016 (YouTube, pdf).

Ladislav Hagara | Komentářů: 1
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (24%)
 (29%)
 (7%)
 (5%)
 (3%)
Celkem 769 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

Dotaz: MySQL ENCRYPT - jaká funkce v PHP ?

Petr Maleček avatar 27.8.2011 21:31 Petr Maleček | skóre: 27 | Plzeň - Bolevec
MySQL ENCRYPT - jaká funkce v PHP ?
Přečteno: 1165×
Zdravím všechny,

dotaz - v MySQLku my dotaz
SELECT ENCRYPT('nějaké-heslo')
vrátí asi takovýto řetězec:
MeXkFnYUhP7cw
Jakou funkcí v PHP dosáhnu stejného výsledku ? Koukal jsem na mcrypt, crypt, ale stejně jsem nenašel tu správnou :-(

Díky za radu.
LinMuck, WinFuck :-P - pokud by mi někdo chtěl pomoct s prostorem na DropBoxu a sám získat 250MB, tak zde.

Odpovědi

27.8.2011 23:33 Kit
Rozbalit Rozbalit vše Re: MySQL ENCRYPT - jaká funkce v PHP ?
K čemu potřebuješ stejný výsledek? Pokud šifruješ v MySQL, ověřuj také v MySQL. Pokud šifruješ v PHP, ověřuj také v PHP.

Kromě toho se doporučuje v MySQL spíš využít funkci password().
Petr Maleček avatar 28.8.2011 16:43 Petr Maleček | skóre: 27 | Plzeň - Bolevec
Rozbalit Rozbalit vše Re: MySQL ENCRYPT - jaká funkce v PHP ?
Na svém serveru mám postfix, který ověřuje uživatele naproti databázi, kde jsou ta hesla šifrována pomocí mysql encryptu. Píšu si jednoduchý nástroj na změnu hesla uživatelem, a proto bych chtěl vědět, jakou funkci na toto využít.

Je mi jasné, že můžu při ověřování původního hesla porovnat, jestli encrypt uživatelem zadaného hesla je schodný se současným řezězcem za pomocí mysql dotazu, ale to mi přijde takové těžkopádné.
LinMuck, WinFuck :-P - pokud by mi někdo chtěl pomoct s prostorem na DropBoxu a sám získat 250MB, tak zde.
28.8.2011 17:09 Filip Jirsák | skóre: 66 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: MySQL ENCRYPT - jaká funkce v PHP ?
To není těžkopádné, ale naopak jediné správné řešení. Funkce encrypt() v MySQL je definovaná dost vágně na to, aby mohla být implementována někde jinde ještě jednou a bylo zaručeno, že obě implementace budou vracet vždy stejné výsledky.
28.8.2011 17:20 l0gik | skóre: 22
Rozbalit Rozbalit vše Re: MySQL ENCRYPT - jaká funkce v PHP ?
Navíc stejně do tý databáze pro to heslo musíš, ne? Takže místo SELECT * FROM .... WHERE ... uděláš SELECT *, password = ENCRYPT(vstupoduzivatle) as spravneheslo FROM ... WHERE ... a je to. Nevidim kde je problém. Nebo taky SELECT * FROM ... WHERE password = ENCRYPT(vstupoduzivatle) AND ... podle toho, na co to potřebuejš...
28.8.2011 17:43 Kit
Rozbalit Rozbalit vše Re: MySQL ENCRYPT - jaká funkce v PHP ?
Jeden drobný problém tam je: Při ověřování potřebuje funkce encrypt() i druhý parametr. Nějak se na něj zapomíná.

Jinak je samozřejmě nesmysl tahat zašifrované heslo z databáze a snažit se ho porovnávat v PHP. Na to máme SQL.
28.8.2011 21:01 l0gik | skóre: 22
Rozbalit Rozbalit vše Re: MySQL ENCRYPT - jaká funkce v PHP ?
Jo, v tom máš pravdu, bez soli je to nesmysl.

Tak mě napadá, nevíte, k čemu vlastně ta varianta na volání bez soli tam vůbec je? Nějak mě nenapadá, k čemu ji použít (na generování náhodnejch čísel jsou lepší postupy).
28.8.2011 21:17 Kit
Rozbalit Rozbalit vše Re: MySQL ENCRYPT - jaká funkce v PHP ?
Bez soli si tu sůl náhodně vygeneruje. Zkus si opakovaně spustit:
SELECT encrypt('heslo');
Pokaždé to vygeneruje něco jiného. První 2 znaky jsou použitá sůl. Když výsledek uložíš do sloupce např. password, tak pro ověření stačí:
SELECT encrypt('heslo',password)=password;
Z uloženého hesla password použije jen první 2 znaky.
28.8.2011 22:26 Kit
Rozbalit Rozbalit vše Re: MySQL ENCRYPT - jaká funkce v PHP ?
Ještě pro zajímavost: Funkce encrypt() bere z šifrovaného řetězce jen prvních 8 znaků, zbytek ignoruje. Možná proto je místo ní doporučena funkce password(), která bere v potaz všechny znaky.
29.8.2011 02:28 l0gik | skóre: 22
Rozbalit Rozbalit vše Re: MySQL ENCRYPT - jaká funkce v PHP ?
Jo jasně, ono to tam tu sůl přidá, pak jo. Já tu fci snad nikdy nepoužil, radši šifruju něčím, co aspoň vím jak šifruje.
7.9.2011 11:51 EsoRimer
Rozbalit Rozbalit vše Re: MySQL ENCRYPT - jaká funkce v PHP ?
The PASSWORD() function is used by the authentication system in MySQL Server; you should not use it in your own applications. For that purpose, consider MD5() or SHA1() instead. Also see RFC 2195, section 2

Viz: http://dev.mysql.com/doc/refman/5.0/en/encryption-functions.html#function_password
Petr Maleček avatar 31.8.2011 11:29 Petr Maleček | skóre: 27 | Plzeň - Bolevec
Rozbalit Rozbalit vše Re: MySQL ENCRYPT - jaká funkce v PHP ?
Díky za odpovědi, už jsem tu logiku překopal tak, že je vše řešeno přes mysql, jak mi bylo zde napovídáno :) vše funguje, skvěle :)

Bohužel jsem nějak nepřišel na to, jak ověřit, zda zadávané heslo uživatelem odpovídá heslu po encryptu MySQLkem (jak víte, pokaždé je řetězec jiný), tak jsem zavolal na pomoc přímo fci imapu v PHP - viz:

// overime existenci mailove schranky
    if ($db->query("SELECT email FROM users WHERE email = '$_REQUEST[email]'")->num_rows) {
      
      // overime spravnost zadaneho hesla, bohuzel musime primo imap pripojenim, protoze funkce encrypt v MySQL vraci pokazde jiny retezec
      if ($mbox = @imap_open("{127.0.0.1:143/notls}", $_REQUEST['email'], $_REQUEST['old-password'])) {   

... 
Abyste chápali čeho jsem chtěl dosáhnout - chtěl jsem umožnit uživatelům měnit heslo do jejich schránky.
LinMuck, WinFuck :-P - pokud by mi někdo chtěl pomoct s prostorem na DropBoxu a sám získat 250MB, tak zde.
31.8.2011 12:02 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: MySQL ENCRYPT - jaká funkce v PHP ?
Jen pro info, vrací různé hodnoty, protože náhodně generuje „salt“.
Např.
SELECT (ENCRYPT('ahoj','AB'));
Dá vždy stejný výsledek.

A když juknete na následující, tak zjistíte jak to lze porovnat:
Použil jsem řetězec 'TGlcRH68Dkg3g', kterýžto vznikl jako
ENCRYPT('ahoj','TG');
(respektive jako ENCRYPT('ahoj'), kde se náhodně vygenerovalo to 'TG')
SELECT CASE WHEN 'TGlcRH68Dkg3g' = ENCRYPT('ahoj',SUBSTRING('TGlcRH68Dkg3g',1,2)) THEN 
       'rovna se to' 
      ELSE 
       'NErovna se to' END  AS result;
Prostě si musíte vzít ty první dva znaky z uloženého encrypt-ovaného řetězce a použít je jako salt.

PS: Ale samozřejmě nenabádám k používání fce ENCRYPT() - ba naopak :-).
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
31.8.2011 12:05 Kit
Rozbalit Rozbalit vše Re: MySQL ENCRYPT - jaká funkce v PHP ?
Však jsem tu podmínku psal:
encrypt('heslo',password)=password
Jako druhý parametr dáš to šifrované heslo v databázi.
31.8.2011 12:20 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: MySQL ENCRYPT - jaká funkce v PHP ?
Jo jasně, protože fce ENCRYPT() bere jen tolik znaků kolik potřebuje, takže ten SUBSTRING() co jsem psal výše, je naprosto zbytečný až špatný.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
7.9.2011 12:04 EsoRimer
Rozbalit Rozbalit vše Re: MySQL ENCRYPT - jaká funkce v PHP ?
Doufám, že je tenhle kus kódu zjednodušený jen pro ukázku ..

if ($db->query("SELECT email FROM users WHERE email = '$_REQUEST[email]'")->num_rows) {
7.9.2011 17:30 Kit
Rozbalit Rozbalit vše Re: MySQL ENCRYPT - jaká funkce v PHP ?
Obávám se, že je to kus skutečného kódu a autor si o SQL injection koleduje zcela záměrně :-)
Petr Maleček avatar 7.9.2011 21:09 Petr Maleček | skóre: 27 | Plzeň - Bolevec
Rozbalit Rozbalit vše Re: MySQL ENCRYPT - jaká funkce v PHP ?
Noo, chybí tam ta podstatnější část nad tím, nebudu jí kopírovat, ale $_REQUEST[] je protažen mysql_escape_stringem :-)
LinMuck, WinFuck :-P - pokud by mi někdo chtěl pomoct s prostorem na DropBoxu a sám získat 250MB, tak zde.
7.9.2011 22:20 Kit
Rozbalit Rozbalit vše Re: MySQL ENCRYPT - jaká funkce v PHP ?
Manipulace s formálními parametry nepatří k dobré programátorské kultuře. Když si pak někdo vzpomene, že parametry bude předávad odkazem, diví se všichni.

Ano, nadávají mi do defenzívního programátora. Chápu to a naučil jsem se s tím žít.
8.9.2011 13:22 l0gik | skóre: 22
Rozbalit Rozbalit vše Re: MySQL ENCRYPT - jaká funkce v PHP ?
Ne to není defenzivní programování, to je prostě čistej rozum. Takhle napsaný je to prasečina. Holt to psal někdo vyrostlej na magic quotes a supluje si je.

A prasečina hned dvojnásobná, protože místo num_rows v uživatelském prostoru tady naprosto stačí použít SELECT EXISTS(SELECT ....).
8.9.2011 18:06 Kit
Rozbalit Rozbalit vše Re: MySQL ENCRYPT - jaká funkce v PHP ?
Dosud jsem netušil, co je to Magic Quotes. Když jsem si to vyhledal, tak jsem zjistil, že jsem o nic nepřišel. Stejně jsou nejlepší parametrické dotazy, tam se nic takového řešit nemusí.
Petr Maleček avatar 9.9.2011 02:28 Petr Maleček | skóre: 27 | Plzeň - Bolevec
Rozbalit Rozbalit vše Re: MySQL ENCRYPT - jaká funkce v PHP ?
Ten formát jaký jsem použil jsem použil z toho důvodu, že vím, že funguje. To co píšete třeba vidím prvně, zase až tak do hloubky jsem schopnosti dotazů pod MySQL nezkoumal, takže přiznávám, že určitě Vaše řešení bude lepší, nebo správnější, ale to moje prostě funguje tak, jak jsem očekával a 99% programátorů pozná, co tím chtěl básník říci, takže mne to nechává klidným. Jednoduchý účel ke kterému to slouží nemá ani znatelný rozdíl na výkonu.
LinMuck, WinFuck :-P - pokud by mi někdo chtěl pomoct s prostorem na DropBoxu a sám získat 250MB, tak zde.
9.9.2011 02:40 l0gik | skóre: 22
Rozbalit Rozbalit vše Re: MySQL ENCRYPT - jaká funkce v PHP ?
No pokud tuto konstrukci vidíte prvně, tak si kupte nějakou knížku o SQL a naučte se ho. Protože jinak budete vyrábět prasečiny jak na běžícím pásu. - Samozřejmě zrovna v tomto kontextu to není takový problém, rozdíl ve výkonu tady bude malý (daleko větší prasečina je to přímý vkládání REQUEST_, protože u něj není jednoduše vidět, že ej už enkódovaný a navíc modifikovat globální pole je opravdu VELKÁ prasečina). Jen to prostě ukazuje na to, že používáte něco, s čím neumíte zacházet. A to prostě není dobře, protože jednou vyrobíte prasečinu, která už nevinná nebude. - Já Vás nechci prudit. Jen se mi zdá, že tendle styl programování (moc tomu nerozumím, jen když to nějak funguje) je cesta do pekel...
Petr Maleček avatar 9.9.2011 19:40 Petr Maleček | skóre: 27 | Plzeň - Bolevec
Rozbalit Rozbalit vše Re: MySQL ENCRYPT - jaká funkce v PHP ?
Možná je to cesta do pekel, ale budete se divit, že mi je za tuto možnost většina uživatelů vděčna. Tady nejde o nějakou velkou službu, jedná se jen o drobnost změny hesla pro mailové schránky, které spočítáte na prtech obou rukou. Nějaký vehementní útok na tuto "službu" neočekávám, takže i kdybych neměl SQL Injeciton nijak ošetřen, tak se houby stane.

Jen to prostě ukazuje na to, že používáte něco, s čím neumíte zacházet. A to prostě není dobře, protože jednou vyrobíte prasečinu, která už nevinná nebude.
Fajn, řekněme - smyšelný příklad - že najezdím ročně kolem 200 tisíc kilometrů (jakožto zahraniční řidič tahače), osobní auto umím řídit i se zavázanýma očima a mám za tu dobu za sebou jednu nehodu, kterou jsem nezpůsobil. Vy najezdíte jakožto běžný motorista ročně kolem 15ti tisíc a máte za sebou třeba 2 zbořená auta vlastní vinou.

Jsem oprávněn Vám říkat, že používáte něco s čím neumíte zacházet a to prostě není dobře, protože jednou někoho zabijete a to už tak nevinné jako sešrotovaná auta nebude ? Je to cesta do pekel.
LinMuck, WinFuck :-P - pokud by mi někdo chtěl pomoct s prostorem na DropBoxu a sám získat 250MB, tak zde.
9.9.2011 19:58 Kit
Rozbalit Rozbalit vše Re: MySQL ENCRYPT - jaká funkce v PHP ?
Tady ale jde principiálně o něco úplně jiného. Modifikace globálních parametrů je v přímém rozporu např. s funkcionálním programováním. Vytváří se sekvenční závislosti, které znemožňují paralelní programování. Ale hlavně se vytváří špatné programovací návyky.

To je tak těžké si dát ošetřenou hodnotu do nové proměnné? To je tak těžké používat parametrizované dotazy? To je tak těžké si nechat poradit od zkušenějších?
Petr Maleček avatar 10.9.2011 00:42 Petr Maleček | skóre: 27 | Plzeň - Bolevec
Rozbalit Rozbalit vše Re: MySQL ENCRYPT - jaká funkce v PHP ?
Nějak nevidím důvod, proč bych měl současnou hodnotu z pole requestu cpát do nové proměnné, když současný formát i po ošetření mysql_escape_stringem odpovídá mému požadavku a jeho formát není nikterak pozměněn.

Mě to naopak připadá jako zbytečné plácání proměnnými. Pokud vám jde čistě jen o modifikaci hodnot v gobálním poli, tak můžu samotnou fci escape_stringu přesunout s klidem do složené části SQL dotazu, kdy se nic modifikovat a znovu přiřazovat nebude.

Ale tohle, jsou jen detaily u tak jednoduché části kódu, jako je ten, který jsem napsal. Modifikace hodnot v globálním poli je možná trošku prasečina a možná se to ani nemá, ale v mém případě použití to nehraje roli.
LinMuck, WinFuck :-P - pokud by mi někdo chtěl pomoct s prostorem na DropBoxu a sám získat 250MB, tak zde.
10.9.2011 01:05 l0gik | skóre: 22
Rozbalit Rozbalit vše Re: MySQL ENCRYPT - jaká funkce v PHP ?
Proč? No protože programátorské zkušenosti praví, že když se to neudělá, tak se kód dřív či později při údržbě rozbije. Prostě je to nečitelný kód který vede zvětšuje pravděpodobnost chyby a navíc se bude daleko hůře udržovat.

Přístup "v mém případě to nehraje roli" je přesně to, za co by se měli programátoři střílet. Dřív či později se to člověku šeredně vymstí. A pokud ne Tobě, tak tomu, kdo po Tobě bude ten kód udržovat.
10.9.2011 09:06 Kit
Rozbalit Rozbalit vše Re: MySQL ENCRYPT - jaká funkce v PHP ?
Převzal jsem údržbu aplikace, která byla napsána podobně hnusným přístupem. Šetření proměnnými se dělalo v dřevních dobách programování, kdy se musel šetřit každý byte. V mém případě to značně ztížilo údržbu, kusy kódu jsem musel přepsat a při té příležitosti jsem našel i pár fatálních chyb, které původní autor udělal, ale v rámci "úspor" si jich prostě nevšiml.

Netvrdím, že by se pamětí mělo plýtvat, ale v daném případě se nic neušetří, spíš naopak. V obou případech dojde k alokování nového prostoru, v "úsporné" variantě se uvolní původní řetězec do smetí. Při opuštění funkce či metody se v "úsporné" variantě uvolní další proměnné do smetí, ale vznikne o jeden fragment víc. Garbage collector bude mít o něco víc práce. A jak funguje GC v PHP, to přece víme. Takže "úsporná" varianta je vlastně méně úsporná.

Pokud se jedná o malý projekt nebo jen pokus, tak plácání proměnnými nás nemusí trápit. V případě velkého projektu zase musíme hlídat udržovatelnost kódu. Ani v jednom případě tedy tyto "úspory" nejsou vhodné. I při pokusech je potřeba udržovat kulturu programování, protože se tím získávají správné návyky. Takže to hraje roli vždy.

Mnoho špatných postupů se dostalo i do různých učebnic programování, protože si na ně autor tak zvykl, že mu vlastně přišly v pořádku. Typickou učebnicovou chybou je například SQL dotaz "SELECT * FROM tabulka;", který nacházím i v komerčních aplikacích. Prostě si to někdo zjednodušil a pak už se k danému kódu nevrátil, protože mu připadal OK. Chybu to nezpůsobí hned a nemusí to způsobit nikdy, ale udržovatelnosti programu to neprospěje. Ovšem je to mnohem menší zlo, než modifikace superglobálních polí.
10.9.2011 10:08 Filip Jirsák | skóre: 66 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: MySQL ENCRYPT - jaká funkce v PHP ?
Zrovna použití mysql_escape_string k přepsání hodnoty pole z požadavku je první polovina vytvoření SQL injection. Pak se vám někde stane, že tu hodnotu escapujete dvakrát, jako opravu to escapování zrušíte a tam, kde se to escapovalo správně jednou, máte vyrobené SQL injection. Mnohem lepší je vyhnout se přepisování parametrů požadavku, vyhnout se i mysql_escape_string a použít parametrizované dotazy.
9.9.2011 20:44 l0gik | skóre: 22
Rozbalit Rozbalit vše Re: MySQL ENCRYPT - jaká funkce v PHP ?
Ten příklad nesedí. Protože jezdit v autě se člověk nenaučí jinak, než tak, že bude jezdit. Programování se ale člověk musí učit i jinak, než jen že "začne programovat". Stejně jako když člověk jezdí autem, tak dřív, než do něj sedne, tak by měl si přečíst a dosti dobře znát silniční pravidla, tak když člověk chce programovat, tak by taktéž měl znát pravidla.

9.9.2011 20:54 Kit
Rozbalit Rozbalit vše Re: MySQL ENCRYPT - jaká funkce v PHP ?
Kdybych to měl dát do souvislosti s příkladem, tak dodržováním pravidel silničního provozu se výrazně sníží pravděpodobnost autonehody u obou typů řidičů.
Petr Maleček avatar 10.9.2011 00:46 Petr Maleček | skóre: 27 | Plzeň - Bolevec
Rozbalit Rozbalit vše Re: MySQL ENCRYPT - jaká funkce v PHP ?
Ano, silniční pravidla musí znát každý motorista, ale je stejně jako s programátory. Kolik nehod na silnicích vznikne každý den ? Mnoho, protože vždycky nějaký řidič udělá chybu, protože nedodržel některý z bodů silničních pravidel.

Stejně tak programátoři, ale u nich to není tak horké (do cíle dojedou bez nehody, přestože to vezmou třeba objížďkou, nebo zkratkou, nebo po poli).

A stejně jako se z řidiče stává dobrý řidič až časem s ježděním, kdy si vše vžije, chyby napraví a přiučí se od ostatních účastníků silniční dopravy, tak i programátor bude dobrým programátorem až po letech programování a zdokonalování se samoukou nebo sledováním druhých.

A teď babo raď, co a kdo to dělá správně a proč.
LinMuck, WinFuck :-P - pokud by mi někdo chtěl pomoct s prostorem na DropBoxu a sám získat 250MB, tak zde.
10.9.2011 01:01 l0gik | skóre: 22
Rozbalit Rozbalit vše Re: MySQL ENCRYPT - jaká funkce v PHP ?
Ano - pro dobré programování i pro dobré ježdění je třeba praxe. Ale pokud se člověk nenaučí předpisy, tak dobrý řidič být prostě nemůže a pravděpodobnost havárky mnohonásobně stoupá - a s programováním je to totéž.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.