Tellen hoeveel dezelfde accounts actief zijn (andere PC, andere browser)

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

.NET developer

Functie Heb jij veel kennis van ASP.NET Webforms en wil jij juist de overstap maken naar ASP.NET Core? Wij zijn per direct op zoek naar een ervaren .NET Webdeveloper die met ons samen ons platform wilt herschrijven van ASP.NET Webforms naar ASP.NET Core. Voor jou de unieke kans om met ons samen te innoveren en kennis op te doen van de nieuwste technieken binnen de Microsoft Stack. Wij hebben een development team met 10 IT specialisten bestaande uit onder andere 4 backend .NET developers en twee front-end developers. Wij zijn continu bezig om ons als team en bedrijf te blijven

Bekijk vacature »

Software Programmeur

Functie omschrijving Voor onze opdrachtgever in omgeving Rotterdam zijn wij opzoek naar een software programmeur die goed kan schrijven in de talen C of C++ en die het leuk vind om te werken met Linux! Werkzaamheden Programmeur Je bent bezig met het ontwikkelen van software en webapplicaties. Je kunt technische klussen uitvoeren op locatie. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een project goed verloopt. Je zult klanten ondersteunen. Verder zul je technische ontwerpen en gebruikersdocumentaties schrijven en deze onderhouden. Bedrijfsprofiel Dit bedrijf wil de klanten een volledige oplossing kunnen bieden, waarbij ze een

Bekijk vacature »

.NET Developer

Functie omschrijving .NET developer met ervaring gezocht! Voor een softwarebedrijf in de regio Veenendaal zijn wij op zoek naar een .NET developer met een aantal jaar ervaring. Jij bent zowel zelfstandig als in teamverband verantwoordelijk voor het ontwikkelen en verbeteren van bestaande producten. Verder ben je bezig met nieuwbouw van websites, webapplicaties en mobiele applicaties die zowel intern als extern gebruikt worden. Je werkt hierbij nauw samen met andere developer, productmanagers en productspecialisten om zo mooie producten te creëren. Bedrijfsprofiel De organisatie waar je voor gaat werken is een snelgroeiende softwareleverancier en allround dienstverlener. Deze organisatie heeft zowel klanten die

Bekijk vacature »

Junior .NET developer

Functie Als junior .NET Developer start jij in een team met 15 developers. In het team is er genoeg senioriteit om ervoor te zorgen dat jij de juiste begeleiding krijgt. Jij begint als eerst alle software pakketten en processen eigen te maken. Vervolgens ga jij deze software programmeren, onderhouden en testen. Ook ga jij research doen naar nieuwe mogelijkheden en zoek jij uit hoe je dit kan implementeren. Jullie werken intern op project basis en afhankelijk van het project werken jullie wel of niet iedere ochtend met een standup. Je gaat als Full stack developer aan de slag en gaat

Bekijk vacature »

Senior Node.js developer Digital Agency

Functie Door de groei van de organisatie zijn ze op zoek naar een Tech Lead. Als tech lead ben jij verantwoordelijk Als Back end Node.js developer kom je terecht in een van de 8 multidisciplinaire teams in het projectenhuis. Afhankelijk van jouw interesses, wensen en capaciteiten word je bij projecten en onderwerpen naar keuze betrokken. Als ervaren ontwikkelaar zul jij vaak leiding nemen in de projecten en in het team een aanvoerder zijn van technische discussies. Uiteindelijk wil jij natuurlijk de klantwensen zo goed mogelijk vertalen naar robuuste code. De projecten kunnen varieren van langlopende- tot kleinschalige trajecten. Voorheen werkte

Bekijk vacature »

PHP Software Developer

Functie omschrijving Op zoek naar een nieuwe uitdaging binnen PHP? Lees dan snel verder! Wij zoeken een ervaren PHP developer die binnen een organisatie gaat functioneren als verlengstuk van de klant. Wij zoeken voor deze iemand die technisch complexe zaken met enthousiasme en plezier aanvliegt. Verder moet je instaat zijn om je tijd goed te managen omdat je aan meerdere projecten tegelijkertijd werkt. Je werkt met de nieuwste technieken en tijdens deze uitdaging werk je veel samen met de front-end developers van deze organisatie. Wij zoeken iemand die zichzelf graag uitdaagt en altijd de beste wilt zijn. Bedrijfsprofiel Waar ga

Bekijk vacature »

Back end developer Onderwijssoftware

Functie Als back end developer kom jij terecht in een klein, maar hecht team bestaande uit 5 andere developers (waarvan 2 senioren, 2 medior en 1 junior). Met de gezamenlijke missie om “ieder kind te helpen met onze software” wordt er dagelijks gepassioneerd en hard gewerkt aan ons in-house ontwikkeld platform. Deze software is gebaseerd is op AI, machine Learning en wetenschappelijke inzichten. Dagelijks zul jij werken met onze high traffic webapplicatie. We hebben ruim 300.00 gebruikers en meer dan 2 miljard records waar je te maken mee krijgt! Verder zul jij je bezighouden met: – Het ontwikkelen van hoogwaardige

Bekijk vacature »

Developer

Functie omschrijving In deze functie ga je werken als C# Developer. Jij gaat aan de slag met de volgende taken: Maatwerk software bouwen; Huidige softwareprojecten verder uitbouwen en optimaliseren; Ideeën van de klant omzetten naar handige oplossingen en tools; Bovenstaande doe je middels de Microsoft- stack: C#, ASP.NET en MVC/ Entity Framework. Ben je net afgestudeerd aan een HBO opleiding Informatica, aarzel dan niet om te solliciteren. Dit is namelijk de ideale startersfunctie! Bedrijfsprofiel Deze organisatie is gevestigd in de regio van Boxtel. Het is van oorsprong een familiebedrijf, die gestart zijn met het bouwen van websites. Dit is door

Bekijk vacature »

Full-stack Developer

As a Full-stack developer at KUBUS, you will develop the (web)applications and services of BIMcollab. You will work on both the front- and back-end. As a software company, KUBUS is in a unique position. We build our own products that are used by tens of thousands of users worldwide. Our company is just the right size: big enough to make a real impact in the market, but small enough that as an individual developer you can have an impact and really make a difference. Our development team consists of over 40 developers, testers, scrum masters and product owners, divided over

Bekijk vacature »

Back-end Software Developer

Functie omschrijving Ben jij op zoek naar een uitdagende development functie bij een klein gespecialiseerd softwarebedrijf? Wil jij graag hybride werken (combi tussen thuis + kantoor), loop jij warm voor maatwerk software en voel jij je prettig in een informele cultuur? Zoek dan niet verder! Reageer direct! Voor een gewilde werkgever in omgeving Tilburg zoeken wij een back-end software developer met een aantal jaar werkervaring. Je gaat werken voor een klein softwarebedrijf dat gespecialiseerd is in de ontwikkeling van integratiesoftware. Jouw werkzaamheden zien er als volgt uit: In een klein team met 4 ontwikkelaars houd jij je bezig met afwisselende

Bekijk vacature »

Embedded Software Developer

Functie omschrijving Voor een mooi softwarebedrijf in omgeving Moordrecht zijn wij op zoek naar een Embedded Software developer. Ben jij enthousiast en een echte team player? Lees dan snel of dit iets voor jou is! Binnen deze rol houdt jij je bezig met alle werkzaamheden die nodig zijn om een functionaliteit te bouwen. Denk aan ontwerpen, architectuur, programmeren en algoritmes. Je voert test en validatie werkzaamheden uit bij de implementatie bij de klant. Ben jij een Embedded Software Developer die affiniteit heeft met de allernieuwste technieken? Laat dan snel wat van je horen! Bedrijfsprofiel Onze opdrachtgever bestaat uit een groot

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Ervaren PHP Developer

Functieomschrijving PHP Developer met brede ervaring gezocht! Ben jij een Full Stack PHP Developer met brede ervaring die toe is aan een volgende stap? Lees dan snel verder! Voor onze eindklant in de regio Nunspeet zijn wij op zoek naar een ervaren PHP Developer die het IT Team van deze organisatie gaat versterken. Wij zoeken een enthousiaste en breed georiënteerde IT-er die er voor gaat zorgen dat deze innovatieve organisatie de volgende stap gaat maken. Om deze functie goed uit te kunnen voeren moet je communicatief goed zijn en in staat zijn om zelfstandig problemen op te lossen. Daarnaast bestaat

Bekijk vacature »

Junior Software Developer

Functie omschrijving Wij zijn op zoek naar een Junior Software Developer!? Sta jij aan het begin van jouw loopbaan of heb jij misschien al enige ervaring? Vind jij het daarnaast belangrijk om jezelf constant te kunnen ontwikkelen en uitdagen? Lees dan snel verder! Voor een vooraanstaand softwarehuis in Nieuwegein ben ik op zoek naar een Junior Software Developer. De eigenaar van het bedrijf is ervan bewust dat je als junior nog een hoop kan leren, waardoor je de eerste maanden veel begeleiding en diverse trainingen krijgt. Daarna ga je samen met je collega's aan zowel kleine als grote projecten werken.

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

Pagina: 1 2 volgende »

Hans De Ridder

Hans De Ridder

19/01/2018 16:40:42
Quote Anchor link
Is het mogelijk om bij te houden wanneer er op meerdere plekken
en/of op meerdere browsers dezelfde account geopend is?
Ik wil voor experimentje een waarde wijzigen van 0 naar 1
als de eerste account geopend is.
Pas als alle accounts afgesloten zijn gaat de waarde weer naar 0.
 
PHP hulp

PHP hulp

06/11/2024 00:47:55
 
- Ariën  -
Beheerder

- Ariën -

19/01/2018 16:46:29
Quote Anchor link
Wat versta jij onder afgesloten? Het sluiten van de browser, wissen van de cookies in de browser, of het netjes uitloggen van de gebruiker via de uitlogknop op je site?

Je kan bij het inloggen een unieke code opslaan in de database. Dan kan je zien op hoeveel browsers ingelogd is per gebruiker. Echter is dit niet betrouwbaar, want als ik de cookies zou wissen in de browser, dan kan ik dit op de server nooit weten.
 
Hans De Ridder

Hans De Ridder

19/01/2018 16:58:24
Quote Anchor link
Bij het inloggen (session) worden er bij mij ook 2 cookies geset.
Een vaste en en variabele. Die waarde wordt ook bewaard op de server.
Die gebruik ik her en der, als er niet hoeft te worden ingelogd,
of niet mogelijk om in te loggen.
Dat werkt voor 1 actieve account prima.
Zo gebruik ik op het openbare gedeelte de cookies om te kijken
of iemand rechten heeft om te mogen reageren.
Het probleem is nu natuurlijk, dat wanneer een ander met dezelfde
account inlogt, de opgeslagen waarde van de variabele cookie verandert.
En dus de eerste account geblokt wordt om te reageren.
Ik weet dat ik met session dat kan voorkomen.
Maar ik had dus bedacht dat wanneer de eerste account inlogt,
die cookiewaardes bij de 2e, 3e, enz. inlog niet veranderen.
En overal gereageerd kan worden vanaf verschillende browsers, plekken.
Maar die waarde moet wel een keer weer naar 0 uteraard.
Dus zoek ik manier om die switch te maken.
Ik kan er ook voor kiezen dat slechts 1 account actief kan zijn.
Net zoals wel gebeurt bij games.
Maar de eerste vind ik wat gebruiksvriendelijker.

Ik bedenk net dat de 2e, 3e, enz toch altijd moeten inloggen om de actuele cookie waarde te ontvangen. dan zou ik gewoon de session langer kunnen maken.
Had ook al gekeken of er melding mogelijk is om einde van de sessie aan te kondigen.
Maar verder dan een cookie ben ik nog niet gekomen.
Gewijzigd op 19/01/2018 17:13:31 door Hans De Ridder
 
- Ariën  -
Beheerder

- Ariën -

19/01/2018 17:15:26
Quote Anchor link
Quote:
Zo gebruik ik op het openbare gedeelte de cookies om te kijken
of iemand rechten heeft om te mogen reageren.

Ik neem aan dat je geen rechten in cookies opslaat. Zo kan iemand zijn rechten anders wel héél makkelijk opwaarderen, en misbruik maken.
 
Hans De Ridder

Hans De Ridder

19/01/2018 17:33:32
Quote Anchor link
Er worden 2 cookies opgeslagen.
1 met de gecodeerde unieke verwijzing.
De andere verandert bij het inloggen en bepaalde activiteiten, zoals wijzigingen, etc.
Die worden vergeleken met de opgeslagen waardes op de server.
Ze moeten beiden overeenkomen om een reactie te mogen geven via een form.
Lijkt me vrij veilig.
Maar daardoor kan ik dus nu ook niet een account laten inloggen terwijl er al een actief is.
En ik vind het ook niet zo'n probleem als er maar 1 account tegelijk ingelogd kan zijn.
Want wat wil je met inloggen meerdere browsers/plekken?...
Afzonderlijk van elkaar wijzigingen aanbrengen?

Ik kwam het alleen tegen toen ik het openbare gedeelte wilde checken op andere browsers.
Terwijl ik nog ingelogd was bij een andere browser, haha
 
Nick Vledder

Nick Vledder

19/01/2018 19:02:43
Quote Anchor link
Volgens mij is je doel, kijken of één account (user) in meerdere browsers de applicatie gebruikt prima te benaderen met het gebruik van session-cookies en een regelmatige ajax-ping naar de server. Is de user ingelogd en maakt de ping geen verbinding meer met de server, dan wordt de user uitgelogd op de server en via een JS commando tevens uitgelogd in de browser.

PS je kan ook voorkomen uiteraard dat voor een tweede keer wordt ingelogd door dezelfde user.
Gewijzigd op 19/01/2018 19:05:12 door Nick Vledder
 
Thomas van den Heuvel

Thomas van den Heuvel

19/01/2018 20:01:39
Quote Anchor link
Hans De Ridder op 19/01/2018 16:40:42:
Ik wil voor experimentje een waarde wijzigen van 0 naar 1
als de eerste account geopend is.
Pas als alle accounts afgesloten zijn gaat de waarde weer naar 0.

Wat is het nut hiervan? Op het moment dat iemand zich aanmeldt is deze toch gewoon ingelogd? Of dit nu in één of tien browsers is.

Als dit voor problemen zorgt met bijvoorbeeld de toegang tot een gedeelde resource (bijvoorbeeld het adminpaneel voor het wijzigen van een artikel; EDIT hierbij is het artikel dus de resource) dan moet je die resource vergrendelen / exclusief ontsluiten voor de eerste persoon die daar toegang toe krijgt, maar niet de accounts zelf.

Dus nogmaals, waarom is dit "hetzelfde account maximaal 1x tegelijkertijd actief" principe noodzakelijk? Ik denk dat je het probleem -wat dit ook moge zijn- beter op een andere manier (bijvoorbeeld op de voorgestelde, mits van toepassing) op kunt lossen.
Gewijzigd op 19/01/2018 20:08:49 door Thomas van den Heuvel
 
Hans De Ridder

Hans De Ridder

19/01/2018 21:31:50
Quote Anchor link
Ik hoop dat ik het goed uitleg, want is best ingewikkeld.
Het is een website voor mensen die wat met de artiestenwereld hebben.
Leden kunnen zich presenteren.
Dat gebeurt via youtubes, nieuwsbrief en andere documenten, flyers, enz.
Er is een registratie/inlogsysteem.
Naast het inloggen wordt hier alle openbaar te plaatsen info in de juiste mappen gezet.
Dit is in principe allemaal klaar.
Vanuit die mappen worden de verschillende categorieën opgebouwd in het openbare deel.

Het openbare gedeelte is voor iedereen toegankelijk.
Er is echter een optie "reageren" (dmv email eventueel met bestand).
Daar kunnen alleen leden gebruik van maken.
Deze optie is aanwezig voor elke categorieën.
Nu verwacht ik dat ook leden gewoon in het openbare gedeelte zullen snuffelen.
En om te voorkomen dat ze in moeten loggen als ze eens willen reageren,
heb ik 2 cookies die geset worden elke keer dat er ingelogd wordt.
En die worden ook op server bewaard.
Een unieke gecodeerde waarde en een variabele waarde.
In principe worden die 3 maanden bewaard.
Ook als je niet meer inlogt kun je dus reageren.
Met slechts 1 account actief gaat dat altijd goed.
Wanneer je echter op andere plek of andere browser inlogt,
dan verandert de variabele waarde van de cookie en die wordt ook opgeslagen.
Vanaf dat moment kloppen de gegevens niet meer om te reageren voor de 1e account-gebruiker.
Natuurlijk kan ik met sessies gaan werken in het openbare gedeelte voor de leden.
Maar die cookies gebruik ik toch al voor andere doeleinden ook.
Dus dacht ik deze ook toe te passen in openbare gedeelte.
Ik liep tegen het probleem aan, toen ik met ingelogd op Chrome,
de layout wilde bekijken op IE en Edge.Dan moest ik telkens uitloggen en weer inloggen.

De afweging die ik moet maken is of een account wel tegelijkertijd op meerdere plekken geopend
moet kunnen zijn. In het geval van mijn website en de gegevens zie ik het doel er niet zo van.
Misschien heb je wel gelijk Thomas om de pagina's waar je info kunt wijzigen en opsturen te vergrendelen.
Maar ik ken de muziekwereld een beetje. Het is al snel te moeilijk of teveel werk.
Vandaar dat met het inloggen ook alle opties bereikbaar zijn.
Maar wat zou het nut kunnen zijn om een account op meerdere plekken in te loggen?
Behalve dan voor de ontwerper, haha.
Sorry voor de lengte van het verhaal

Hier een voorbeeld van een categorie.
Via button wordt bekeken of je een reactie kunt geven.
Gekleurd: ja Grijs: nee, button is geblokkeerd.

https://www.pctraverse.nl/voorbeeld1.jpg
Gewijzigd op 19/01/2018 21:32:27 door Hans De Ridder
 
Thomas van den Heuvel

Thomas van den Heuvel

19/01/2018 22:11:55
Quote Anchor link
Ik denk dat het probleem is dat je meerdere "systemen" hebt om verschillende typen gebruikers in te laten loggen (verschillende cookies?), althans zo klinkt het. Als in beginsel alle "gebruikers" (of dit nu geregistreerde bezoekers, muzikanten of beheerders zijn) hetzelfde zouden zijn, dan zou je het probleem wat je nu ondervindt niet hebben toch, want dan ben je gewoon ingelogd met de laatst ingelogde gebruiker, wat dat ook moge zijn.

En cookies voor authenticatie, dat klinkt niet erg bemoedigend. Cookies zouden wel kunnen dienen om iemand automatisch (onder water) opnieuw in te loggen indien een sessie verloopt ofzo, nadat met enige zekerheid is vastgesteld dat het om dezelfde gebruiker gaat, op grond van eerder vastgelegde gegevens. Maar dat is dus een stuk gebruikersgemak waarbij je ook weer een beetje veiligheid opoffert.

Ik denk dat de oplossing ligt in de richting van één manier van inloggen/authenticeren/bijhouden wie iemand is. Wat gebruikers vervolgens kunnen doen hangt af vant hun privileges / rechten die je aan een gebruiker koppelt. Let goed op dit onderscheid (wie iemand is <--> wat iemand mag doen).
 
Hans De Ridder

Hans De Ridder

19/01/2018 22:38:04
Quote Anchor link
Er is maar een account hoor. Die heeft de mogelijkheid om in alle categorieen berichten, flyers, youtubes, etc. te plaatsen.
Het klopt als je inlogt dat dit in principe ook kan. (Zolang ik die mogelijkheid aanhoud).
Dat werkt ook bij de openbare pagina's.
Het probleem zit hem dus dat bij inloggen de variabele cookie verandert.
En de als eerste ingelogde persoon niet meer kan reageren op de openbare pagina.
Ik zou dat kunnen oplossen door te checken (via ip) of lid online is.
Beetje zoals Nick aangeeft.
Dan kan ik switchen van 0 naar 1.
En de cookies onveranderd laten.
Dat verandert pas als lid niet meer actief is.
Maar denk dat het werken met session het meest eenvoudig is...
En nog even denken of ik wel accounts dubbel geactiveerd wil hebben....
 
Thomas van den Heuvel

Thomas van den Heuvel

19/01/2018 23:12:33
Quote Anchor link
Mja, maar het klinkt alsof je nog steeds verschillende cookies hebt voor verschillende gebruikers, terwijl dat in wezen eenzelfde cookie zou moeten zijn die precies één gebruiker identificeert. Dan heb je jouw hele probleem niet (EDIT: dit garandeert op zijn minst dat je per browser maar 1x bent ingelogd).

vb je hebt nu 3 cookies "henk", "piet" en "klaas", terwijl dat eigenlijk één cookie "user" zou moeten zijn ofzo, waaruit op een of andere (veilige!) manier moet blijken wie dat is.

Trouwens, hele ingewikkelde constructies voor beveiligingsmechanismen hangt een beetje naar security through obscurity, wat niet echt een goed ontwerpprincipe is - als hier sprake van is. Het is beter dat het berust op een simpel, transparant systeem waarbij iedereen kan zien dat het veilig is.
Gewijzigd op 19/01/2018 23:23:16 door Thomas van den Heuvel
 
Hans De Ridder

Hans De Ridder

19/01/2018 23:48:15
Quote Anchor link
Er zijn per account maar 2 cookies. Een vaste waarde en een variabele.
Maar die variabele waarde verandert bij het inloggen. (Veiligheid)
En wordt opgeslagen in cookie en bewaart in database.
In het openbare gedeelte worden de cookies opgeroepen en vergeleken met de waardes in de database.
Dus als er wordt ingelogd vanaf verschillende plekken verandert telkens de waarde in cookie en in database.
Dan klopt de test alleen bij de laatst ingelogde! En anderen kunnen geen reactie meer geven.
Maar denk probleem te omzeilen door voor leden ook in het openbare gedeelte met sessie te werken.
Maar gelet op de hoeveelheid aan info en youtubes heb ik geen idee hoe lang leden vertoeven in het openbare gedeelte.
En in de verschillende categorieen.
Kun je een session ook ongezien verlengen als de tijd er bijna op zit?
 
- Ariën  -
Beheerder

- Ariën -

20/01/2018 00:42:34
Quote Anchor link
Als ik mij niet vergis vervalt een sessie standaard na ongeveer 30 inactieve minuten, dus er zit geen harde TTL aan vast.
Gewijzigd op 20/01/2018 00:43:31 door - Ariën -
 
Hans De Ridder

Hans De Ridder

20/01/2018 01:13:38
Quote Anchor link
Ik heb altijd met inloggen maar 1 pagina open. (header verandering).
Ook de pagina's waar je kunt invoeren of wijzigen.
Ik had eerder wat ingebouwd om na sluiten van pagina (dus niet ALLE tabs) automatisch via onbeforeunload
uit te loggen. en de session te beeindigen.
De linkjes om door te verwijzen stopten de werking zodat er tijdens het unloaden geen uitloggen volgde.
Maar moest ik ook weer maatregelen nemen om reloads en 'vorige pagina' voor uitloggen te behoeden.

Denk dat een gewone session start wel genoeg moet zijn.
En dat een lid moet inloggen als hij reactie wil geven.
Maar vind zonder inloggen wel gebruiksvriendelijker.
Ik kan toch bij bijv. wijziging van de pagina weer een nieuwe session starten.
Die loopt dan in principe ook weer 30 minuten.



Toevoeging op 20/01/2018 01:19:52:

Hier nog een scriptje van Stackoverflow die kijkt naar timeout.

On login:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
session_start();
$_SESSION['last_action'] = time();

An ajax call every few (eg 20) seconds:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
windows.setInterval(keepAliveCall, 20000);

Server side keepalive.php:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
session_start();
$_SESSION['last_action'] = time();


On every other action:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
session_start();
if ($_SESSION['last_action'] < time() - 30 /* be a little tolerant here */) {
  // destroy the session and quit
}
Gewijzigd op 20/01/2018 01:21:02 door Hans De Ridder
 
Obelix Idefix

Obelix Idefix

20/01/2018 11:11:41
Quote Anchor link
Hans De Ridder op 19/01/2018 17:33:32:
Er worden 2 cookies opgeslagen.

Die worden vergeleken met de opgeslagen waardes op de server.


Zit daar niet het probleem?
1) Kunnen verschillende browsers gebruik maken van dezelfde cookie?
Ik heb het nog niet meegemaakt dat als ik met Chrome ergens inlog, ik ook gelijktijdig met FF dan ben ingelogd.

2) De cookies zijn lokaal opgeslagen. Dat betekent volgens mij dat als iemand thuis is ingelogd en later ergens anders naar de website gaat (zonder thuis te hebben uitgelogd), niet beschikt over de cookies die thuis gezet zijn.
Dan kun je vergelijken met wat er op de server staat, maar dat gaat niet lukken.

Als ik het zo lees, is wat jij wilt niet mogelijk. Andere locatie / browser betekent dat je geen toegang hebt tot de cookies die (met een andere browser / op andere locatie) je eerst had.

Hans De Ridder op 19/01/2018 22:38:04:
En nog even denken of ik wel accounts dubbel geactiveerd wil hebben....

Beter lijkt me om dat te voorkomen. Iemand kan maar op 1 plaats zijn.
Wat als iemand de browser afsluit en niet netjes uitlogt. Die zou dan eeuwig ingelogd kunnen blijven?
Gewijzigd op 20/01/2018 11:13:59 door Obelix Idefix
 
Nick Vledder

Nick Vledder

20/01/2018 12:24:15
Quote Anchor link
Dat laatste is eenvoudig te ondervangen met Ajax Ping (vanuit browser). Na whatever seconden geen bericht = uitloggen op server.
 
Hans De Ridder

Hans De Ridder

20/01/2018 12:48:46
Quote Anchor link
Ik heb even gekeken wat er met inloggen allemaal wordt opgeslagen.
Daar zag ik wellicht wel de oplossing.
Ik gebruik 'Last_login'.
Als ik dat aanhoud en tel daarbij op de sessieduur, dan is de laatste met dezelfde account uitgelogd.
Die sessionduur moet dan wel de tijd zijn die bij inloggen is gegeven.
Dan wordt er uitgelogd en de sessie gestopt.
Er mag dus niet een nieuwe tijd worden ingesteld met een start session tussendoor.
Dat kan ik wel regelen waarschijnlijk met een cookie.
Maar weet (nog) niet of dit met php ook mogelijk is.
Even struinen op google.
Dan zorg ik er voor dat bij meerdere inlogs van een account geen nieuwe variabele cookie wordt geset.
Maar de cookie de inhoud krijgt van de al opgeslagen waarde uit de database.
Dan veranderen de cookies niet, zolang de laatste van dezelfde account nog ingelogd is.
Dat laatste had ik al getest en werkt prima.
Kreeg alleen de omschakeling niet voor elkaar.
Voor de slimmerikken die roepen: "maar als de laatste eerder uitlogt dan?".
De absolute tijd is niet zo relevant.
Dan is alleen de tijd dat de cookies niet veranderen wat (onnodig) langer.
En daardoor de veiligheid wat minder.
Maar is geen verband met wachtwoorden of usernames.
 
Thomas van den Heuvel

Thomas van den Heuvel

20/01/2018 15:38:07
Quote Anchor link
Heb de bovenstaande thread nogmaals gelezen en ik denk dat ik nu een beter beeld heb van wat er aan de hand is.

Mijn voorstel is als volgt: stap af van het gebruik van cookies, tenzij dit niet anders kan of een speciale reden heeft.

Ga gebruik maken van sessies. Als je functionaliteit wilt hebben die gebruikers ingelogd houdt / automatisch herinlogt: houd dit dan bij in een database. Maar houd het in eerste instantie simpel. Hiervoor zul je dan wel een cookie met een beperkte levensduur bij moeten houden waarin je bijvoorbeeld een hash opslaat. Deze hash + het IP van de gebruiker + een beperkte levensduur voor dit record tezamen zorgen ervoor dat iemand heringelogd wordt als aan de volgende condities is voldaan:
- de gebruiker is niet ingelogd
- er bestaat een niet-verlopen record met dezelfde hash als in het cookie en hetzelfde IP

Je hebt hiervoor een cookie nodig omdat dit de levensduur van een sessie (die om wat voor reden dan ook tekort is) moet overspannen. Volgens mij was hier al eens een keer een andere thread over geweest. De strekking (van mijn standpunt) daarin was ongeveer het volgende: probeer niet krampachtig een sessie in leven te houden, want deze timeout toch op den duur (om uiteenlopende redenen) maar zorg gewoon -als dit gewenst is- dat je een systeem hebt die je onderwater naadloos opnieuw inlogt, bijvoorbeeld op de hierboven beschreven wijze. Dit lijkt mij gewoon een veel simpelere constructie, waarbij de sessie dus een soort van automatische doorstart maakt.

Voor handelingen waar je geen speciale "rechten" voor nodig hebt: hiervoor zou je ook niets hoeven te doen. Wel zul je formulieren moeten beveiligen tegen spam, bijvoorbeeld met een token (misschien was dat het nut van het continu veranderende cookie?) die wordt meegestuurd en na afloop via een andere wijze wordt gecontroleerd. Doe je dit echter via cookies, dan zou je elke keer dezelfde cookiewaarde+formulierwaarde kunnen doorsturen wat het hele systeem een beetje om zeep helpt omdat de controle toegankelijk (en manipuleerbaar) is door de client zijde. Daarom gebruik je sessies - dit noem ik altijd "serverside cookies" - de controle bij sessies ligt aan de serverkant en niet bij de gebruiker. En dat is natuurlijk altijd een beter plan dan de controle bij de gebruiker te leggen want deze zou je eigenlijk nooit moeten vertrouwen.

Vraag ik mij nog steeds af wat het nut is van het continu veranderende cookie? Dit zou een soort van constructie met een nonce kunnen zijn, maar ik denk niet dat het allemaal zo geavanceerd is? Los daarvan, als dit als zodanig gebruikt wordt dan lijkt mij een sessie veel veiliger voor dit soort spul dan een cookie. Cookies zijn clientside en dus, zoals gezegd, manipuleerbaar.
Gewijzigd op 20/01/2018 15:39:14 door Thomas van den Heuvel
 
Hans De Ridder

Hans De Ridder

21/01/2018 14:16:39
Quote Anchor link
De waarde van de variabele cookie verandert, als een extra stukje veiligheid.
Mocht iemand eens aan vriend op vreemde PC de werking laten zien,
dan heeft die persoon de 2 cookies ook.
Maar hij kan er niet zoveel mee.
Er zal dan gevraagd worden om in te loggen.

Ik heb het nu (voorlopig) opgelost, zonder extra cookie.

Zolang er geen inlog is, is er niks aan de hand.
Lid kan zonder inlog alle openbare pagina's bezoeken en ook reageren als lid.
Op andere pc's of pc's kan dat ook.
Cookies wijzigen uitsluitend bij inloggen.

Zodra er ingelogd is verandert de waarde van de variabele cookie nog 1 keer.
Vervolgens worden er geen wijzigingen meer aangebracht in de variabele cookie.
Tot het moment dat de laatst ingelogde uit wordt gelogd.
Daarna wordt alles weer hersteld naar de oude situatie.

Bij het lid (zelfde account) die wil reageren op openbare pagina's betekent dit
dat men hooguit 1 keer dan moet inloggen om te kunnen reageren via die andere browser of PC.
Dit is mijn code (IPTC).
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$cookie_code=$_COOKIE['code'];
$cookie_user=$_COOKIE['user'];

if (isset($cookie_user, $cookie_code))
 {
$file=realpath($_SERVER['DOCUMENT_ROOT'])."foto/".$cookie_user.'.jpg';
$i=new iptc($file);
$r=$i->get(LAST_LOGIN);

$end_session=$r+3600;
$real_time=time();

if($real_time>$end_session)
{
echo $i->set(ACCOUNT_ACTIVE,'0');
$i->write();
}
else
{
echo $i->set(ACCOUNT_ACTIVE,'1');
$i->write();
}
}


Bij inlogscript:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
if ($account_active==0)
{
setcookie($cookie_name, $cookie_code, time() + (90 * 86400), "/"); // = 90 day
}
else
{
$i = new iptc($file);
$r = $i->get(LID_HASH);
$s = $i->get(COOKIE_CODE);
$cookie_code=$s;
setcookie($cookie_name, $s, time() + (90 * 86400), "/"); // = 90 day
}
Gewijzigd op 21/01/2018 14:58:05 door Hans De Ridder
 
Thomas van den Heuvel

Thomas van den Heuvel

22/01/2018 00:47:37
Quote Anchor link
Hoe ingewikkelder je het (voor jezelf) maakt, hoe belangrijker het in ieder geval is om code te annoteren (te voorzien van commentaar). Als ik dit over een week, maand of jaar nog eens bekijk, dan zou ik bij god niet weten wat deze code precies zou moeten doen.

Leg altijd in commentaar uit en vast wat de strekking / het effect van code is (of zou moeten zijn). Als je dat dan op een gegeven moment terugleest dan denk je misschien ook op een gegeven moment "waar was ik mee bezig" of "waarom heb ik ooit voor deze aanpak gekozen".

Maar ook voor debugging. Dit kan dan -in het gunstigste geval- heel snel duidelijk maken dat de code het voorgestelde plan mogelijk niet juist implementeert.
 
Ivo P

Ivo P

22/01/2018 09:25:28
Quote Anchor link
Wat ik begrijp:

Bij een account heb je 2 cookie-gegevens in je database staan, die ook bij de browser bekend zijn en waarmee je dus weet dat iemand ingelogd is (op die browser).

En dat geeft een probleem als iemand met een 2e client inlogt.

Wat nu als je het omdraait? Als je bij de 2 cookie gegevens noteert welk account daarbij hoort.

dus browser 1 heeft een cookie A en een cookie B en daarmee is de user Hans ingelogd (met Firefox voor mijn part).
Er is ook een record in je database met cookies X en Y en eveneens user Hans, maar nu op IE op een andere PC...
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.