NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Identifikační klíč uživatele a ověření

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
katrincsak
Člen
Avatar
katrincsak:13.6.2015 11:03

Zdravím,

  • potřeboval bych prodiskutovat řešení.

Pracuji na jednom projektu, řekněme zobrazení vlastních nápadů atp a rád bych umožnil přidávat věci neregistrovaným lidem a zároveň i registrovaným s dalšími možnostmi. (To jen na úvod).

  • SMS systém na ověřování zatím nechci a ani nevím jestli budu chtít i když bych si GSM modul včetně simky za pakatel obstaral, ale musel bych to hlídat a kdyby došlo na vysokou návštěvnost (více zaslaných sms), tak bych tím již porušoval pravidla využívání služeb od operátora a mohlo by dojít ještě v dobrém jen na odpojení.
  • Raději bych to udělal formou emailu s tím bude souviset i klíč.

Neregistrovaný uživatel:

  • Povinné by bylo zadat email a vlastní heslo(na editaci).
  • Po odeslání by se data nasypala do databáze včetně klasického unikátního ID v Mysql.
  • Také bych vytvořil z emailu hash, který by vlastně sloužil jako identifikační klíč k ověření a potvrzení emailu pomocí URL.
  • ID jako unikátní číslo by již nadále sloužilo jako identifikace uživatele.

Registrovaný uživatel:


Proces zpracování totožný s tím, že by registrovaný uživatel měl extra databázi. Otázka ale zní jak rozdělit ID v URL. Napadlo mě do URL dát něco jako "n"-neregistrovaný a "r"-registrovaný .. takže by to pak vypadalo něják jako n1, n2, r1, r2 atp...

Jaký je váš názor na takový jednoduchý proces? Samozřejmě si kdokoliv může zobrazit obsah. Samozřejmě tam bude další nastavení a možnosti atp. Jde spíše o tu identifikaci.. Nikdy jsem nic takového nedělal a nic pořádně nečetl. Občas rád přicházím s vlastními nápady.

Editováno 13.6.2015 11:04
 
Odpovědět
13.6.2015 11:03
Avatar
Odpovídá na katrincsak
Martin Konečný (pavelco1998):13.6.2015 11:08

Ahoj,

jen pro ujasnění - když bude uživatel registrován, pak to můžeš zjistit pomocí session. K čemu potom chceš předávat tuto informaci přes URL?
V podstatě pokud bude existovat ID uživatele v session, pak se jedná o přihlášeného uživatele.

Nahoru Odpovědět
13.6.2015 11:08
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
katrincsak
Člen
Avatar
Odpovídá na Martin Konečný (pavelco1998)
katrincsak:13.6.2015 11:18
  • Aby obsah mohl být veřejný což platí pro neregistrovaného i registrovaného stejně. S tím že registrovaný si to bude moct pak nastavit.
  • Aby pomocí odkazu to dotyčný mohli i sdílet ;-)
Editováno 13.6.2015 11:19
 
Nahoru Odpovědět
13.6.2015 11:18
Avatar
Odpovídá na katrincsak
Martin Konečný (pavelco1998):13.6.2015 11:45

Stále moc nepobírám smysl toho předávání v URL. Co když přijde neregistrovaný, v URL bude mít n1, n2 a přepíše si to na r1 a r2? Stejně pak budeš muset dělat nějaké kontroly, jestli to r1 a r2 je správně (tzn. jestli je uživatel přihlášen).

Nahoru Odpovědět
13.6.2015 11:45
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
katrincsak
Člen
Avatar
Odpovídá na Martin Konečný (pavelco1998)
katrincsak:13.6.2015 12:08

Nedal jsem odpovědět.

 
Nahoru Odpovědět
13.6.2015 12:08
Avatar
katrincsak
Člen
Avatar
Odpovídá na Martin Konečný (pavelco1998)
katrincsak:13.6.2015 12:19
  • Ještě to zkusím vysvětlit jinak.

Plácnu teď...

Když vyvolám URL
http://neco.cz/?p=n1
http://neco.cz/?p=n2

Každý ID vlastní jiný neregistrovaný uživatel. Když si vyvoláš tento odkaz např n1, ukáže se ti jen web a obrázek s popisem..To samé u n2.

Pakliže se rozhodneš to upravit, tak jsi nucen zadat údaj, který jsi zadával při vkládání obrázku, tedy heslo. Samozřejmě se to uloží do SESSION a můžeš v klidu editovat -> upravit, smazat atp...

Možná je to zbytečné že to vůbec řeším, ale přeci jen více hlav a více názorů ;-)

 
Nahoru Odpovědět
13.6.2015 12:19
Avatar
Neaktivní uživatel:13.6.2015 12:19

V tom případě nemusíš žádný N ani R řešit. URL bude jako unikátní ID, nebo třeba SEF. Použitím POST by sis v tuhle chvíli docela protiřečil.

Nahoru Odpovědět
13.6.2015 12:19
Neaktivní uživatelský účet
Avatar
Odpovídá na katrincsak
Neaktivní uživatel:13.6.2015 12:27

Jinak pokud bych musel zadávat email a heslo, není to už potom v podstatě rychlá registrace? Napadá mě například povolení editace podle IP. Jestli jde o nějaké zveřejňování nápadů (z toho nahoře jsem to tak pochopil), mělo by to v pohodě stačit.

Nahoru Odpovědět
13.6.2015 12:27
Neaktivní uživatelský účet
Avatar
katrincsak
Člen
Avatar
Odpovídá na Neaktivní uživatel
katrincsak:13.6.2015 12:27

SEF? S tímto jsem se ještě nepotkal...

Byly by 2 databáze neregistrovaný a registrovaný. Takže bych krásně věděl odkud data tečou.

 
Nahoru Odpovědět
13.6.2015 12:27
Avatar
Odpovídá na katrincsak
Neaktivní uživatel:13.6.2015 12:32

SEF je označení pro (konkrétně v tomto případě, je to s tím složitější) jakýsi identifikační název "přátelštější" jak pro uživatele, tak pro vyhledávače. Například "dk83jdi13" => "kuchyne/ledni­ce/super-levna-lednice".

Dvě databáze určitě ne. Nemyslíš spíš dvě tabulky? Nevidím důvod používat dvě databáze.

Nahoru Odpovědět
13.6.2015 12:32
Neaktivní uživatelský účet
Avatar
katrincsak
Člen
Avatar
Odpovídá na Neaktivní uživatel
katrincsak:13.6.2015 12:34

Popravdě řečeno, není to úplně to co jsem uvedl. Každopádně nerad bych uváděl skutečný nápad. Je pravda, že by to šlo řešit i bez té mini registrace (email, heslo) ale mělo by to značné omezení. Možná by to šlo řešit jen tím klíčem v emailu k editaci (což by mohlo být lepší) Tím bych zrušil jakýkoliv náznak nějaké mini registrace i když přímé registrování ponese více iniciálu z důvodu nutnosti k některým věcem. Samozřejmě tohle až tak úplně neřeší pravou pointu toho co řeším i když rozhodně děkuji za zmínění, aspoň mě napadlo nové řešení. Proto také jsem založil toto vlákno, pak člověka napadne spousta jiných věcí.

 
Nahoru Odpovědět
13.6.2015 12:34
Avatar
katrincsak
Člen
Avatar
katrincsak:13.6.2015 12:35

Ano 2 tabulky... Nějak to stále popisuji jako databázi(špatný zlozvyk).

 
Nahoru Odpovědět
13.6.2015 12:35
Avatar
Odpovídá na katrincsak
Neaktivní uživatel:13.6.2015 12:36

Teď docela dobře nevím, na co vlastně řešení hledáš. Můžeš to vysvětlit ještě jednou, trochu konkrétněji?

Nahoru Odpovědět
13.6.2015 12:36
Neaktivní uživatelský účet
Avatar
katrincsak
Člen
Avatar
Odpovídá na Neaktivní uživatel
katrincsak:13.6.2015 13:07

Dobře...

Budu/chci mít 2 skupiny ->

  • Neregistrovaný uživatel.
  • Registrovaný uživatel.
  • Neregistrovaný uživatel řekněme že může nahrát jen 1 fotku.
  • Registrovaný uživatel řekněme kolik chce fotek v rámci nějakého omezení.

Ty fotky se nahrávají proto, aby je mohli prezentovat a kdykoliv sdílet. Samozřejmě ne jenom ten kdo to nahrál, ale třeba i někdo cizí, nebo kamarád.

Osobně(Já) abych věděl odkud data proudí co nejjednodušeji, tak si vytvořím 2 tabulky pro každou tu skupinu.

Neregistrovaný


(Již s menší změnou než prvně).

  • Vložím fotku na web, včetně popisu a kvůli aktivaci a základnímu ověření bude na email odeslán 2x kod. 1 Kod pro aktivaci a druhý pro editaci. Přeskočím detaily -> do databáze se zapíše ID, 1.kod pro aktivaci, 2.kod pro editaci.

*ID -> ID bych vygeneroval klasicky unikátním ID v Mysql , ID by tedy sloužilo jako identifikace neregistrovaného uživatele i pro veřejné zobrazení obsahu, tedy nahraného obrázku včetně popisu atp..První uživatel by měl tedy ID: 1 s dosazením pro třídění písmeno "n" takže identifikace a URL pro načtení by mohla vypadat např takto: http://něco.cz/n1 ... později třeba http://něco.cz/n8582154581
OTÁZKA: Řešili by jste identifikaci, nějak lépe, nebo je postup špatně? Názor !

  • 1.kod pro aktivaci, to by mohl být jen za hashovaný email v URL a po kliknutí se updatne DB na aktivováno. Tím že je to řekněme první uživatel ID by bylo 1. Takže URL by vypadala třeba takto http://něco.cz/n1 a zobrazil by se obsah. Původně jsem se neptal.

OTAZKA: Jiný nápad na generování klíče pro aktivaci zobrazení?

  • 2.kod pro možnost editovat..Což jsem původně vůbec neřešil, vycházel jsem z toho hesla i když heslo může být zadané jen pro vygenerování hashe. leželo by v tom i ID, takže identifikace by byla stále unikátní)

OTAZKA: Jak by jste řešili generování unikátního klíče pro editaci neregistrovaného uživatele v URL

Editováno 13.6.2015 13:08
 
Nahoru Odpovědět
13.6.2015 13:07
Avatar
katrincsak
Člen
Avatar
katrincsak:13.6.2015 13:16

Registrovaný uživatel řeší stejnou otázku s ID. Takže nestojí za zmiňování.

 
Nahoru Odpovědět
13.6.2015 13:16
Avatar
Odpovídá na katrincsak
Neaktivní uživatel:13.6.2015 13:27

A je nutné řešit editaci pro neregistrovaného uživatele? Samozřejmě to jde, kdyby ale byla editace jedna z výhod pro registrované uživatele, bylo by to nejen jednodušší, ale i bezpečnější.

Jinak si to můžeš hodit do jedné tabulky, jen ti přibude sloupeček. :)

Identifikace špatná určitě není, možná by ale bylo lepší použít nějakou šifru/hash, což by znamenalo minimální ochranu obrázků.

Pokud budeš používat nějaký známější hash (MD*, SHA-*, atp.), aktivační kód by si dokázal vygenerovat každý, kdo má přístup k emailové adrese uživatele. Otázkou je, zda-li je to problém.


Moje řešení: neregistrovaný uživatel přes formulář nahraje obrázek s tím, že zapíše svou emailovou adresu. Na ní se pošle unikátní klíč pro editaci. Do databáze se uloží i speciální ID, které se bude používat pro další obrázky pod tímto emailem. Také by sloužilo jako ID do URL.

Registrovaný uživatel by fungoval stejně, jen by byl prostě registrovaný, tudíž toto ID by se vytvořilo už při registraci.

Řekl bych, že je to docela elegantní řešení, možná ale pořád špatně chápu funkci webu, když tak povídej. :)

Editováno 13.6.2015 13:28
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
13.6.2015 13:27
Neaktivní uživatelský účet
Avatar
katrincsak
Člen
Avatar
Odpovídá na Neaktivní uživatel
katrincsak:13.6.2015 13:56

Děkuji, přesně takovou odpověď jsem potřeboval.

Editace pro neregistrované není úplně nutná, ale bude to lepší.

  • Co se týče rozdělení tabulky, tak asi nebude problém přidat sloupec. Každopádně z důvodu organizace asi radši udělám 2 tabulky. Ta jedna nemusí uchovávat tolik informací. (Ale to asi nestojí za diskuzi, každopádně i tak děkuji za postřeh).
  • Identifikace: Pravda, hashovat by to také šlo ale možná zbytečné. Ochrana obrázků být nemusí, ale mohlo by to být další + (Nad tímto budu ještě určitě uvažovat).
  • Aktivace: Tady to tolik potřeba řešit není, aktivací zobrazení se toho moc uškodit nedá(Je to hlavně kvůli ověření uživatele). Napadá mě ale že kdyby pak někdo chtěl, tak si vytvoří automat co by mohl vytvářet a rovnou aktivovat díky jednoznačnému algoritmu.. Asi bude lepší tam něco namíchat.. I když je pravda že funkce password_hash() by to jednoduše mohla řešit ve většině zmíněných klíčů..Heslo reg.uživ. je samozřejmostí.

S řeším: Takto, nebo dosti podobně to vidím také.

Editováno 13.6.2015 13:59
 
Nahoru Odpovědět
13.6.2015 13:56
Avatar
Odpovídá na katrincsak
Neaktivní uživatel:13.6.2015 14:03

Jestli jsem ti pomohl, prosím o stisknutí takové té fajfky (řešení). Docela mi to pomůže. :) Klidně si ale počkej, třeba někdo přispěje lépe než já. :)

Nahoru Odpovědět
13.6.2015 14:03
Neaktivní uživatelský účet
Avatar
katrincsak
Člen
Avatar
Odpovídá na Neaktivní uživatel
katrincsak:13.6.2015 16:55

Vzhledem k tomu, že jsi mě tak nějak utvrdil v řešení. Zároveň pochybuji, že by to někdo četl, když se jedná o tolik textu. Tak ti fajfku dám tedy hned. Dostal by jsi ji stejně, jen ne tak rychle. Chodím sem často a kromě 1 článku jsem dal řešení vždycky ;-)

 
Nahoru Odpovědět
13.6.2015 16:55
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 19 zpráv z 19.