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íží...
dnes 11:30 | Komunita

Bylo oznámeno, že bude proveden bezpečnostní audit zdrojových kódů open source softwaru pro implementaci virtuálních privátních sítí OpenVPN. Audit provede Matthew D. Green (blog), uznávaný kryptolog a profesor na Univerzitě Johnse Hopkinse. Auditována bude verze 2.4 (aktuálně RC 1, stabilní verze je 2.3.14). Audit bude financován společností Private Internet Access [reddit].

Ladislav Hagara | Komentářů: 0
dnes 06:00 | Komunita

Na YouTube byl publikován Blender Institute Reel 2016, ani ne dvouminutový sestřih z filmů, které vznikly za posledních 10 let díky Blender Institutu. V institutu aktuálně pracují na novém filmu Agent 327. Dění kolem filmu lze sledovat na Blender Cloudu. Videoukázka Agenta 327 z června letošního roku na YouTube.

Ladislav Hagara | Komentářů: 0
dnes 01:02 | Zajímavý článek

Minulý týden byly vydány verze 1.2.3 a 1.1.7 webového poštovního klienta Roundcube. V oznámení o vydání bylo zmíněno řešení bezpečnostního problému nalezeného společností RIPS a souvisejícího s voláním funkce mail() v PHP. Tento týden byly zveřejněny podrobnosti. Útočník mohl pomocí speciálně připraveného emailu spustit na serveru libovolný příkaz. Stejně, jak je popsáno v článku Exploit PHP’s mail() to get remote code execution z roku 2014.

Ladislav Hagara | Komentářů: 1
včera 16:00 | Nová verze

Byla vydána verze 0.98 svobodného nelineárního video editoru Pitivi. Z novinek lze zmínit například přizpůsobitelné klávesové zkratky. Videoukázka práce s nejnovější verzí Pitivi na YouTube.

Ladislav Hagara | Komentářů: 1
včera 15:00 | Zajímavý software

Stop motion je technika animace, při níž je reálný objekt mezi jednotlivými snímky ručně upravován a posouván o malé úseky, tak aby po spojení vyvolala animace dojem spojitosti. Jaký software lze pro stop motion použít na Linuxu? Článek na OMG! Ubuntu! představuje Heron Animation. Ten bohužel podporuje pouze webové kamery. Podpora digitálních zrcadlovek je začleněna například v programu qStopMotion.

Ladislav Hagara | Komentářů: 3
7.12. 21:21 | Nová verze Ladislav Hagara | Komentářů: 0
7.12. 11:44 | Zajímavý projekt

Na Indiegogo byla spuštěna kampaň na podporu herní mini konzole a multimediálního centra RetroEngine Sigma od Doyodo. Předobjednat ji lze již od 49 dolarů. Požadovaná částka 20 000 dolarů byla překonána již 6 krát. Majitelé mini konzole si budou moci zahrát hry pro Atari VCS 2600, Sega Genesis nebo NES. Předinstalováno bude multimediální centrum Kodi.

Ladislav Hagara | Komentářů: 2
7.12. 00:10 | Nová verze

Byla vydána verze 4.7 redakčního systému WordPress. Kódové označením Vaughan bylo vybráno na počest americké jazzové zpěvačky Sarah "Sassy" Vaughan. Z novinek lze zmínit například novou výchozí šablonu Twenty Seventeen, náhledy pdf souborů nebo WordPress REST API.

Ladislav Hagara | Komentářů: 10
6.12. 12:00 | Zajímavý projekt

Projekt Termbox umožňuje vyzkoušet si linuxové distribuce Ubuntu, Debian, Fedora, CentOS a Arch Linux ve webovém prohlížeči. Řešení je postaveno na projektu HyperContainer. Podrobnosti v často kladených dotazech (FAQ). Zdrojové kódy jsou k dispozici na GitHubu [reddit].

Ladislav Hagara | Komentářů: 27
6.12. 11:00 | Bezpečnostní upozornění

Byly zveřejněny informace o bezpečnostní chybě CVE-2016-8655 v Linuxu zneužitelné k lokální eskalaci práv. Chyba se dostala do linuxového jádra v srpnu 2011. V upstreamu byla opravena minulý týden [Hacker News].

Ladislav Hagara | Komentářů: 2
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 801 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

Dotaz: PHP login = MySQL user

15.1.2011 00:01 Martin Vesely
PHP login = MySQL user
Přečteno: 3747×
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í?
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
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.