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í
×
dnes 04:10 | Nová verze

Po 10 týdnech vývoje od vydání Linuxu 4.9 (zprávička) oznámil Linus Torvalds, mj. již 20 let žijící v USA, vydání Linuxu 4.10 (LKML). Přehled nových vlastností a vylepšení například na Kernel Newbies a v Jaderných novinách (1, 2 a 3). Kódové jméno Linuxu 4.10 je Fearless Coyote.

Ladislav Hagara | Komentářů: 0
včera 15:55 | Zajímavý projekt

Vyzkoušet si příkazy a vyřešit několik úkolů lze na stránkách Commandline Challenge (CMD Challenge). Úkoly lze řešit různými způsoby, důležitý je výsledek. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.

Ladislav Hagara | Komentářů: 10
18.2. 17:35 | Bezpečnostní upozornění

Německá Bundesnetzagentur (obdoba českého ČTU) zakázala na německém území prodej panenky Cayla kvůli „špionáži“ dětí. Tato elektronická hračka obsahuje mikrofon, reproduktor a kameru a bezdrátové komunikační rozhraní, pomocí kterého se hračka připojuje na servery výrobce. Takovýmto způsobem může hračka pomocí umělé inteligence „odpovídat“ na dotazy dítěte. Hlavní problém bude ale asi někde jinde, podle prvotních zpráv může

… více »
Petr Tomášek | Komentářů: 26
17.2. 15:30 | Bezpečnostní upozornění

CSIRT.CZ upozorňuje, že bezpečnostní experti objevili nový typ malwaru, jenž cílí na open source e-commerce platformu Magento. Malware je zajímavý tím, že se jedná o první svého druhu, jehož kód zůstává skrytý v SQL databázi zasaženého e-shopu. Škodlivý kód je volán pomocí tzv. SQL trigerru, který je spouštěn při každém vytvoření objednávky v systému.

Ladislav Hagara | Komentářů: 2
17.2. 09:00 | Nová verze

Bylo vydáno Ubuntu 16.04.2 LTS, tj. druhé opravné vydání Ubuntu 16.04 LTS s kódovým názvem Xenial Xerus. Přehled novinek v poznámkách k vydání a v přehledu změn.

Ladislav Hagara | Komentářů: 50
17.2. 06:00 | Zajímavý článek

Pavel Tišnovský se v dvoudílném článku na MojeFedora.cz věnuje tvorbě pluginů (modulů) pro bitmapový grafický editor GIMP. Pomocí pluginů lze GIMP rozšiřovat o další funkce. Implementovat lze například nové filtry nebo pomocné utility pro tvorbu animací či poloautomatickou retuš snímků.

Ladislav Hagara | Komentářů: 6
16.2. 23:32 | Komunita

Do 30. března se lze přihlásit do dalšího kola programu Outreachy, jehož cílem je přitáhnout do světa svobodného a otevřeného softwaru lidi ze skupin, jež jsou ve světě svobodného a otevřeného softwaru málo zastoupeny. Za 3 měsíce práce, od 30. května do 30. srpna 2017, v participujících organizacích lze vydělat 5 500 USD. Jedná se již o 14. kolo tohoto programu.

Ladislav Hagara | Komentářů: 11
16.2. 23:13 | Nová verze

Byla vydána verze 0.92.1 svobodného multiplatformního vektorového grafického editoru Inkscape. Přehled novinek v poznámkách k vydání. Řešen je mimo jiné problém s verzí 0.92, jež rozbíjí dokumenty vytvořené v předchozích verzích Inkscape. Více v příspěvku na blogu Davida Revoye, autora open source webového komiksu Pepper&Carrot nebo portrétu GNU/Linuxu.

Ladislav Hagara | Komentářů: 0
16.2. 16:26 | Bezpečnostní upozornění

Byla vydána verze 1.1.0e kryptografické knihovny OpenSSL. Dle bezpečnostního upozornění 20170216 byla opravena závažná bezpečnostní chyba CVE-2017-3733.

Ladislav Hagara | Komentářů: 1
16.2. 13:03 | Pozvánky

GNOME hackaton proběhne v Brně na FIT VUT v Red Hat Labu (budova Q) v pondělí 20. února od 15:00. Registrace není nutná, ale pokud dáte na FaceBooku vědět, že plánujete dorazit, pomůže to s plánováním.

Ladislav Hagara | Komentářů: 0
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (13%)
 (2%)
 (72%)
 (3%)
 (10%)
Celkem 659 hlasů
 Komentářů: 52, poslední 13.2. 12:45
Rozcestník
Reklama

Dotaz: PHP login = MySQL user

15.1.2011 00:01 Martin Vesely
PHP login = MySQL user
Přečteno: 3751×
Dobry den,

pisu takovy maly "informacni system" pro kamarady. Bude se do nej prihlasovat jen nekolik lidi. Z "urcitych duvodu" bych potreboval, aby login do aplikace korespondoval s loginem do MySQL. Tedy v zadnem PHP souboru nebude ulozene jmeno a heslo do DB.

Jenomze at googlim jak googlim, nachazim akorat clanky o tom, jak se prihlasovat pomoci tabulky 'users' a loginu ulozenem v 'config.php'.

Nemate nekdo zkusenosti s tim jak postupovat, pokud chci aby login do PHP aplikace byl zaroven loginem do MySQL? Mam pouzit mysql_pconnect? Skript 'login.php' otevre spojeni s DB a kdyz se povede tak presmeruje na index.php a spojeni zustane otevrene? Skript 'logout.php' spojeni zavre?

Nedari se mi nalezt jediny clanek, ktery by se timto zabyval. Ktery by mne upozornil na zasadni chyby, ukazal cestu...

Prosim nasmerujte mne nekdo. Dekuji. -Martin

Odpovědi

15.1.2011 11:10 Magog | skóre: 6
Rozbalit Rozbalit vše Re: PHP login = MySQL user
Proč to nejde udělat tak, že jméno a heslo z přihlašovacího formuláře bude zároveň jménem a heslem do MySQL? Problém bude v tom, jak udržovat spojení do databáze. Můžete si například pamatovat to jméno a heslo. Pamatovat si jej na straně serveru bude obtížné, protože nemáte k dispozici databázi, resp. ukládáte údaje nutné k přihlášení do DB. Pamatovat si to na straně klienta (např. v cookies nebo jako součást stránky) taky není ideální, protože při každém požadavku se jméno a heslo přenáší znovu na server.

Jinak řečeno logovat se do PHP systému loginem do DB serveru přináší spoustu problémů. Nestálo by za to zvážit, zda to nelze udělat jinak, jednodušeji?

Jinak standardní praxe je na začátku skriptu otevřít spojení do DB, vykonat svoje dotazy, zavřít spojení a odeslat výsledek.
mess avatar 15.1.2011 11:52 mess | skóre: 43 | blog: bordel | Háj ve Slezsku - Smolkov
Rozbalit Rozbalit vše Re: PHP login = MySQL user
Nešlo by si pamatovat to přihlašovací jméno a heslo v $_SESSION. Samozřejmě za předpokladu, že se session bude ukládat někam jinam, než do databáze. Jak se dívám do dokumentace, tak se session ukládá do filesystému, takže s tím by problém být neměl.
Cez párne mesiace zošíváš vaginy, cez neparne montuješ hajzle.
15.1.2011 12:40 Magog | skóre: 6
Rozbalit Rozbalit vše Re: PHP login = MySQL user
Ano, sessions je možnost. Musí být ale povolené na serveru (což je dost často) a uživatel musí mít povolené cookies (což nemusí být tak časté, např. na mobilech nebo z důvodu paraonii).

(Session ID se ukládá do cookies u uživatele. Rozdíl je v tom, že se o to nemusíte starat vy jako autor dané aplikace)
mess avatar 15.1.2011 13:23 mess | skóre: 43 | blog: bordel | Háj ve Slezsku - Smolkov
Rozbalit Rozbalit vše Re: PHP login = MySQL user
... a uživatel musí mít povolené cookies...
Uživatel, který má cookies zakázané se stejně nepřihlásí na většinu webů, jelikož je přihlášování většinou řešené právě tím to způsobem. Zadruhé, když je má zakázané, asi ví, co dělá a měla by mu stačit hláška, že si má cookies pro přihlášení povolit. Takže bych povolení/nepovolení cookies na straně uživatele jako problém neviděl.
Cez párne mesiace zošíváš vaginy, cez neparne montuješ hajzle.
15.1.2011 13:55 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: PHP login = MySQL user
Lze to řešit ta že to bude $_SESSION proměná, ktéré se při standardním přihlášení ukládají do přednastaveného adresáře. Tento adresář lze změnit i ze skriptu (pokud máte server pod kontrolou a je Vám to umožněno) pomocí fce session_save_path().
Pokud takto učiníte máte další možnost kontroly tohoto ukládacího prostoru, a můžete jej promazávat dalšími prostředky aby tam něco nezůstávalo apod.
Pokud chcete zvýšit bezpečnost, můžete hesla do $_SESSION zašifrovaná na základě třeba něčeho v konfiguračním souboru php aplikace či certifikátu, a k tomuto souboru umožníte přístup jen pro čtení a jen uživateli, na kterého běží web server. (někdo bude argumentovat, že je to „security by obscurity“, ale není, je to jiná level, ne každý se může přihlásit na uživatele 'wwwrun', nebo jiného na kterého běží web server.) - já bych tam ještě před tím vložil nějaký obskurní prvek (otočil heslo, pokud má lichý počet znaků tak něco a tak), bo i to může být někdy součástí zabezpečení (buď to prodlouží, nepatrně čas k získání hesel, nebo to znemožní, člověku neznalému co se mu to dostalo do ruky, včetně certifikátu či master hesla to prokouknout).
A co se týče vypnutých cookie, zkuste si následující (na serveru s safe_mode=off):
<?php
error_reporting(0);
ini_set('display_errors', 'Off');

ini_set("session.use_only_cookies", "0");
ini_set("session.use_cookies", "1");
ini_set("session.use_trans_sid","1");
ini_set("session.name", "uidhash");
session_start();
echo ini_get();

error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', 'On');

if(!isset($_SESSION['test']))
  $_SESSION['test'] = '???';
echo 'Last time: '.  $_SESSION['test'] . ', now: ' . time() . '<br />';

$_SESSION['test']=time();

?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>" >
  <input type="submit" />
</form>
<a href="<?php echo $_SERVER['PHP_SELF'];?>">link</a>
Vypněte cookies v prohlížeči a refreshněte stránku a zkuste znovu - a podívejte se na zdrojová kód stránky.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
16.1.2011 14:16 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: PHP login = MySQL user
echo ini_get(); na 10. řádku je tam zbytečné-nesmyslné zakomentujte si jej :)
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
16.1.2011 14:29 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: PHP login = MySQL user
Ono se to může ukládat i do DB, je potřeba jen napsat jednotlivé fce, zaregistrovate je pomocí session_set_save_handler() a pro připojení k DB použijete master heslo s uživatelem oprávněným zapisovat jen do té tabulky či db pro session proměnné.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
Jendа avatar 15.1.2011 12:36 Jendа | skóre: 73 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: PHP login = MySQL user
Při normálním HTTP přihlášení má na straně serveru jméno a heslo pořád dostupné v $_SERVER['PHP_AUTH_USER'] a $_SERVER['PHP_AUTH_PW'].
taky není ideální, protože při každém požadavku se jméno a heslo přenáší znovu na server
Jak to vadí?
Vox agroferti, vox Dei.
15.1.2011 12:42 Magog | skóre: 6
Rozbalit Rozbalit vše Re: PHP login = MySQL user
Pokud jde přes HTTP, tak jde v plaintextu. A tím pádem se kdokoliv může kdekoliv po cestě kouknout. HTTPS je práce navíc.
Jendа avatar 15.1.2011 12:50 Jendа | skóre: 73 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: PHP login = MySQL user
Pokud to jde nešifrovaně, tak kdokoli může
  • odposlechnout heslo při přihlašování
  • ukrást session při každém požadavku
  • a pokud chce heslo a má session, může session zneplatnit a tím donutit oběť k dalšímu přihlášení heslem
Vox agroferti, vox Dei.
xkucf03 avatar 16.1.2011 13:45 xkucf03 | skóre: 45 | blog: xkucf03
Rozbalit Rozbalit vše Re: PHP login = MySQL user
Jestli se citlivé údaje přenášejí jen jednou nebo pokaždé je celkem jedno, rozdíl je minimální. HTTPS je více méně nutnost – ano, někdo to může považovat za práci/náklady navíc, ale v takovém případě bych doporučil zamyslet se nad tím, jakou bude mít práci a náklady v případě kompromitace, odposlechu.
Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-Výuka.cz, Nekuřák.net
15.1.2011 13:12 Martin Vesely
Rozbalit Rozbalit vše Re: PHP login = MySQL user
Dobry den,

tedy predem dekuji za Vas zajem a pomoc. A abych trochu odkryl karty, proc vlastne resim tento zpusob prihlaseni do aplikace...

V prve rade jsem jej (snad naivne) pokladal za bezpecnejsi. Ale neuvedomil jsem si, ze stejne nekde budu muset mit uschovane to heslo. Kdyz jsem si precetl rozdil mezi mysql_connect a *_pconnect, zjistil jsem, ze slouzi docela jinemu ucelu, nez jsem se domnival.

Ve druhe rade budu mit uzivatele, kteri budou do DB prispivat a ty, kteri ji budou pouze cist. Delegovanim kontroly prav na MySQL jsem se chtel vyhnout tomu, abych to musel resit v samotne aplikaci. Tedy ne, ze bych to do jiste miry resit nemusel, ale i pri opomenuti/chybe by pripadny pokus o zapis zastavilo MySQL.

No a do tretice mne uz psani PHP kodu trochu omrzelo a zacal jsem objevovat schopnosti a silu samotneho (My)SQL. Snazim se na jeho bedra prenest velkou cast prace. Neresim do jake miry je to rozumne, chci si to zkratka vyzkouset.

Jak je login reseny napr. u PHPMyAdmin, netusite nekdo? Tedy koukam tady do kodu, ale moudry z toho nejsem.

Dekuji Vam, -Martin
15.1.2011 14:39 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: PHP login = MySQL user
U phpMyAdmin definujete pomocí $cfg['Servers'][$i]['auth_type'] metodu přihlášení a od ní odvinutý způsob uložení informací viz třeba zde.
Kde v případě 'cookie' není heslo v session proměnné, jak píšou - kód jsem nezkoumal, ale přímo v zašifrované cookie (pomocí fráze v $cfg['blowfish_secret']), z hlediska bezpečnosti na to může být dvojí pohled. Heslo je zašifrované jinde, než je klíč - což je dobře, ale zašifrované heslo je veřejné - což nemusí vadit (mně to vadí z toho důvodu, že zašifrovná hesla se mohou nasbírat a pak stačí mít tu passfrázi (nechťa uteče :)). Pokud by byla zašifrovaná hesla na serveru jen nezbytně dlouho dobu, je těžké je nasbírat a není to tak zlé, bo ji(passfrazi) změním a hotovo, ale když to chodí pryč je třeba změnit všechna hesla hned.).
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†

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.