session timeout

Overzicht

Sponsored by: Vacatures door Monsterboard

Fullstack JavaScript Developer Webapplicaties

Bedrijfsomschrijving Voor deze organisatie ben ik op zoek naar een getalenteerde Fullstack JavaScript Developer. Ze is een snelgroeiend software development agency dat zich richt op het ontwikkelen van moderne webapplicaties en complexe systemen voor haar klanten. Ze is gevestigd onder de rook van Utrecht en heeft als doel om tot de top van de Nederlandse agencies te behoren. Deze organisatie maakt softwareoplossingen voor verschillende soorten bedrijven. Innovatie staat hoog in het vaandel en je zult dus met nieuwe technieken aan de slag gaan. Ze hebben klanten in vele branches zitten, zoals retail, finance, gezondheid en onderwijs. De diverse klanten zorgen

Bekijk vacature »

Front end developer React Sportgames

Functie Als Front end developer ga jij aan de slag bij een gave en bekende organisatie op het gebied van sportgames. Jij gaat aan de slag in een scrumteam met 6 developers die gepassioneerd en actief bezig zijn om spelers kwalitatieve en mooie spelervaringen aan te bieden. Als scrumteam werken ze in drie wekelijkse sprints en begin je iedere ochtend met een stand-up. Als Front end developer werk jij bij deze organisatie voornamelijk met Javascript, html, css en React. Er wordt veel gebruikt gemaakt ook van C#, Docker en Kubernetes. Het team hecht veel waarde aan het leveren van hoogwaardige

Bekijk vacature »

Junior .NET developer

Functie Wij hebben drie scrumteams. Het eerste team focust zich op het stukje hardware wat wij in huis doen. Zij maken als team o.a. gebruik van C++. De andere twee scrumteams zijn allebei bezig met data verwerking en maken hierbij in de backend gebruik van C# .NET / .NET Core. Het verschil tussen deze teams is dat één team de data verwerking doet voor de mobiele applicatie. Zij werken hierbij dus ook met Xamarin. Het andere team focust zich op de webapplicaties en maakt hierbij ook gebruik van ASP.NET MVC. Op basis van jouw ambities en kwaliteiten kijken wij samen

Bekijk vacature »

Front-end (Angular) developer - remote werken

Functie Als Front-end (Angular) developer ga je aan de slag met het uitbouwen van hun webapplicatie, als één van de front-end experts ga je samen met collega’s in een devops team werken aan een nieuw front-end voor hun calculatie oplossing. Binnen de calculatiesoftware kunnen meerdere professionals tegelijk samenwerken, 3D calculaties uitvoeren en ook inzien met de benodigde specifieke details. Deze software wordt veel ingezet om projectbeschrijvingen en kosten in kaart te brengen, en tijdens de uitvoering te bewaken. Maar hiernaast liggen er in de toekomst veel meer plannen op het gebied van front-end in de andere applicaties. Genoeg te doen

Bekijk vacature »

Backend Developer PHP Laravel SaaS

Dit ga je doen Het ontwikkelen van nieuwe features die bijdragen aan de groei van de klanten van de organisatie; Je denkt mee over nieuwe innovaties, features en verbeteringen in de applicatiearchitectuur; Je draagt bij aan de continue ontwikkeling van jouw team doordat je elke dag streeft naar het verbeteren van jouw eigen prestaties; Je neemt actief deel aan Scrum meetings en de Backend Guild. Hier ga je werken Voor een snel groeiend bedrijf, in de regio Nieuw Vennep, zijn wij opzoek naar een ervaren Backend Developer. De organisatie is actief in de e-commercebranche en ontzorgt haar klanten middels een

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 »

.NET developer

Functie As a .NET developer you work together in a multidisciplinary development team with 1-2 Senior .NET developers, two front-end developers, Data Scientists and one UX designer. As a team you work on developing a Cloud based application and making this application more stable. Unit testing will also become very important in your new position. Together with the Senior .NET developer you will be responsible for developing the API. You work with a lot of data and occasionally there will also be data issues and some queries will have to be run. This means that you will work a lot

Bekijk vacature »

.NET Developer Shared Driving

Bedrijfsomschrijving Onze klant richt zich op het toegankelijker maken van steden, een fantastisch mooi streven. Hoe ze dat doen? Met eigen ontwikkelde software, waarmee vervoersmiddelen gedeeld kunnen worden. Deze inspirerende werkgever maakt een maatschappelijke impact en dat doen ze nu al zo'n 25 jaar! Het bedrijf is gevestigd in het centrum van Rotterdam en kent ongeveer zo'n 90 medewerkers. Het personeel is lekker gewoon gebleven! Iedereen kleedt zich zoals hij of zij dat zou willen en de sfeer is er erg fijn. Een leuke werkgever om voor te werken, en bovendien zijn er voor jou als Software Developer veel mooie

Bekijk vacature »

Software Developer PHP

Functie omschrijving We are looking for a dutch native speaker Voor een opdrachtgever in de regio van Geldrop ben ik op zoek naar een Software Developer PHP. Jij krijgt een rol met veel verantwoordelijkheid in een groeiende organisatie. In deze functie werkt je voornamelijk remote en op een vast moment kom je met het team samen, om samen te werken en nieuwe doelen te bepalen. Wat ga je doen? Je wordt verantwoordelijk voor de interne applicatie; Je zorgt voor de doorontwikkeling van de applicatie: zowel back-end, front-end; De basis van het werk betreft front-end technieken; Periodiek bepaal je samen met

Bekijk vacature »

PHP Developer

Functie Middels Scrum en sprints bouw jij in deze functie mee aan complexe webapplicaties en ons SaaS platform. Hierbij hoort ook architectuur tot een van je taken. Daarnaast ben je één van de leden van het Scrum team. Dat betekent dat je naast je kerntaken ook in contact staat met de product owner. Oftewel, je bent bij het gehele ontwikkelproces betrokken. Tools die hierbij gebruikt worden zijn o.a. PHP, Symfony en Git. Eisen • Minimaal HBO werk- en denkniveau • Minimaal 3 jaar aantoonbare ervaring met PHP • Kennis en ervaring Symfony (Laravel is pré) & Lando • Kennis van

Bekijk vacature »

Scrum Master

TenneT is hard groeiend om de onze ambities waar te kunnen maken. Zo nemen wij een leidende rol in het aanjagen van de energietransitie. Het werven van nieuw talent speelt daarin een cruciale rol. Wij zijn op zoek naar een gedreven Scrum master op onze locatie Arnhem die hieraan wil bijdragen en misschien ben jij dat wel? Jouw bijdrage aan TenneT Je begeleidt twee teams binnen de afdeling Platform Services (PLS). Je helpt mee de devops manier van werken van de teams verder door te ontwikkelen. Je helpt de PO bij het managen van de product backlog; het voorbereiden van

Bekijk vacature »

Traineeship Full Stack .NET Developer

Dit ga je doen Start op 7 augustus 2023 bij de Experis Academy en ontwikkel jezelf tot een gewilde Full Stack .NET Developer. Maar hoe ziet het traineeship eruit en wat kun je verwachten? Periode 1 De eerste 3 maanden volg je fulltime, vanuit huis, een op maat gemaakte training in teamverband. Je leert belangrijke theorie en krijgt kennis van de benodigde vaardigheden en competenties die nodig zijn om de IT-arbeidsmarkt te betreden. Zowel zelfstandig als in teamverband voer je praktijkopdrachten op het gebied van front- en backend development uit. Wat er per week op het programma staat kun je

Bekijk vacature »

Mendix Developer

For our client in Amsterdam, we are looking for a Senior Mendix Developer. Company description Our client is an IT Consultancy company who’s been active for 10 years now. With their ambitious team, they are working with different clients in order to help them with analyzing their data and giving advice to them, regarding how they can use their data in the smartest ways, or to make sure that their mobile or web applications are working efficiently. As you get a glimpse of various industries, it is guaranteed that no day will be the same. Job description As a Mendix

Bekijk vacature »

Delphi Programmeur

Functie omschrijving Onze opdrachtgever is gespecialiseerd in kantoor-bedrijfssoftware en zit gevestigd in omgeving Numansdorp. Als programmeur ben jij bij dit bedrijf met het volgende bezig; Je vertaalt technische en functionele ontwerpen naar kwalitatieve software. Je ontwikkelt, ontwerpt en test software. Je maakt daarbij veel gebruik met de volgende tools & technologieën: Delphi 10.3 (Rio), QuickReport 6. Je krijgt in deze rol veel vrijheid en verantwoordelijkheid. Je levert projecten van A - Z op, en werkt daarbij projectmatig en gestructureerd. Bedrijfsprofiel Dit bedrijf richt zich op maatwerk software oplossingen. Deze software oplossingen worden ingezet in de financiële branche. Het betreft een

Bekijk vacature »

.NET developer

Functie Jij begint als .NET ontwikkelaar in een team met 10 andere Software Engineers. De werkzaamheden zijn afwisselend, zo kan het dat jij bezig bent met volledig nieuwe features of het door ontwikkelen van bestaande sites of shops. Wij ontwikkelen web applicaties, maar ook mobiele applicaties. Daarnaast bijt jij je soms ook van in externe koppelingen met systemen zoals een ERP. Als team is er een duidelijke focus m.b.t. het waarborgen van de performance en snelheid van webshops. Ook zijn wij expert op het gebied van configuratoren. Kortom enorm veel afwisselende werkzaamheden! Ook jouw werkplek kan afwisselend zijn. Soms heb

Bekijk vacature »

Pagina: 1 2 volgende »

Ozzie PHP

Ozzie PHP

27/05/2016 21:02:35
Anchor link
Hoewel er niet echt een goed of fout is, ben ik benieuwd op welke waarde jullie je session timeout hebben staan. De default is 1440 seconden (24 minuten). Toch kan dat lijkt me in sommige situatie te kort zijn. Bijv. als je in de backend van de website een uitgebreid redactioneel artikel aan het schrijven bent. Dat kan best langer duren dan die 24 minuten. Als je dan na bijv. 40 minuten je artikel wil opslaan is je sessie verlopen ... oeps.

Maak je de sessie timeout-duur te lang, bijv. 2 uur, dan vergroot je (theoretisch gezien) de kans dat een sessie wordt gekaapt.

Dus wat is wijsheid? Wat is een goede session timeout-duur?
 
PHP hulp

PHP hulp

16/04/2024 15:32:40
 
Thomas van den Heuvel

Thomas van den Heuvel

27/05/2016 21:33:50
Anchor link
Quote:
Maak je de sessie timeout-duur te lang, bijv. 2 uur, dan vergroot je (theoretisch gezien) de kans dat een sessie wordt gekaapt.

Toch alleen als je beveiliging ontoereikend is.

Zoals ik al eerder heb aangegeven, in plaats van het krampachtig proberen je sessies in leven te houden kun je beter inzetten op een strategie waarbij het niet uitmaakt dat deze (veelvuldig) verlopen en weer (veelvuldig) naadloos vervolg worden (onder water geherstart worden) zonder dat dit je applicatie/workflow/whatever breekt.
 
Ward van der Put
Moderator

Ward van der Put

27/05/2016 22:14:00
Anchor link
Gebruikelijke time-outs zijn 15 tot 30 minuten voor applicaties met een laag risico en 2 tot 5 minuten voor applicaties met een hoog risico.
Gewijzigd op 11/06/2016 18:09:49 door Bas IJzelendoorn
 
Ozzie PHP

Ozzie PHP

27/05/2016 23:58:33
Anchor link
@Thomas

Ik snap niet helemaal wat je bedoelt. Eenmaal verlopen is verlopen, dus dan kun je niet onderwater herstarten. Er zal op dat moment een nieuwe sessie worden gestart en alle sessie-data is dus foetsie. Wat ik bedoel te zeggen is ... soms wil je niet dat een sessie (te) snel verloopt. Stel iemand heeft spullen in z'n winkelmand gegooid en gaat even een blokje om lopen. Komt een half uur later terug. Klikt op z'n winkelmandje om af te rekenen, maar in de tussentijd is de sessie verlopen. Mogelijk gevolg, klant raakt gefrustreerd en sluit de browser af. Koop gaat niet door. Tegelijkertijd ... de back-end van een website wil je weer niet té lang hebben open staan. De vraag is dus of er een soort "balans" is. Ik lees ook websites waar ze pas na 24 uur een timeout doen. Zo'n sessie blijft dus een hele dag lang geldig. Als tegengeluid hoor je hier dan weer dat je moet oppassen voor session hijacking. Hoewel je daar het een en andere tegen kunt doen, is het wel een reëel risico. Hoe reëel? Geen idee ... daarom ben ik dus benieuwd naar ervaringen / best practices.

@Ward

>> Je opent de laatste tijd voortdurend vragen over het configureren van een VPS

Waar in de richtlijnen van dit forum staat dat dit niet mag? Iedereen is vrij om vragen te stellen en iedereen is vrij om die te beantwoorden (of niet). Volgens mij is dit forum bedoeld om elkaar te ondersteunen en helpen. Het inrichten van een server beslaat veel meer facetten dan enkele php.ini instellingen waar ik graag even over wil sparren.

Ik vind jouw reactie in deze een beetje vreemd en ook onverwachts. Liever had ik dan nog gehad dat je me een persoonlijk berichtje had gestuurd. Maar goed, als jij dit topic graag wil dichtgooien ... go ahead.
 
Ben van Velzen

Ben van Velzen

28/05/2016 00:29:41
Anchor link
Ik moet het hierin met Ozzie eens zijn dat een forum bedoeld is om vragen te stellen. Nu is dit topic niet zo zinnig aanvoelt als sommige anderen, maar ook de PHP configuraties bestaat uit veel nuances en individuele situaties.

Daarbij snap ik waar Thomas op doelt, je kunt je sessies combineren met andere methoden, bijvoorbeeld een cookie met een token oid, op welke basis je sessies kunt opbouwen/hervatten mbv gegevens die je al hebt. Ik heb zelf eerder gespeeld met een database session handler die in plaats van data verwijderen de data als inactief meldde, en na X periode uiteindelijk de zaak schoonveegde. Als je hier een token aanhangt kun je blijven hervatten zo vaak als je wilt.
 
Ozzie PHP

Ozzie PHP

28/05/2016 00:38:58
Anchor link
Ben, thanks voor je reactie. Er zit iets raars/dubbelzinnig in het sessie-systeem. Van de ene kant wil je het een gebruiker zo makkelijk mogelijk maken: je wilt in feite niet dat een gebruiker telkens opnieuw moet inloggen of z'n gegevens moet invullen. Als ie 's ochtends z'n winkelmandje vult, wil je bij wijze van dat ie 's avonds nog steeds op "afrekenen" kan drukken. In het geval het enkel om een winkelmandje gaat en er geen persoonlijke gegevens zijn ingevuld zou dit nog niet eens erg zijn ook. Sterker nog, als er wel persoonlijke gegevens zijn ingevuld zou het ook nog niet erg zijn ... pas als er sprake is van een "afgeschermde omgeving" waar je eerst moet inloggen, wordt het tricky.

In een back-end zou je bijv. kunnen kiezen dat een sessie 20 min. openstaat ... maar achter de schermen kun je ervoor zorgen dat de daadwerkelijk timeout langer duurt, bijv. een uur. Als de gebruiker 20 minuten lang niks doet, kun je bij de eerstvolgende request vragen om het wachtwoord. Als dat klopt, dan kun je de sessie weer vrijgeven, en als het niet klopt dan kun je de sessie-data vernietigen. Gevolg is dan wel dat als een gebruiker inlogt en een uur lang niks doet, het sessie-bestand op de achtergrond een uur lang "actief" is en pas na dat uur als inactief wordt bestempeld. Vergroot dit het risico op session-hijacking?
 
Ben van Velzen

Ben van Velzen

28/05/2016 01:44:01
Anchor link
Daarnaast geldt dat je te maken hebt met de GC timings binnen PHP, de timeout is daarmee niet alles dat meetelt. Na de timeout gaat de collector aan de slag, en het kan gebeuren dat een sessie pas uren later werkelijk verwijderd wordt.

De manier die je schetst kan een uitkomst bieden, bij verloop van de sessie om een wachtwoord vragen. Dit vereist tegelijk wel dat je in een cookie bijhoudt om welke gebruiker het gaat. Als je een session cookie gebruikt (timeout 0) is dit geen enkel punt, bij het sluiten van de browser gaat dit cookie verloren.

Op het punt van hijacking: session hijacking kan voorkomen wanneer je onveilig met de data omgaat. Net als dat je niet wilt dat URLs van het backend bekend worden. Hier zijn uiteraard oplossingen voor, zoals een tussenliggende pagina op een neutrale locatie, die mbv bijvoorbeeld een Refresh header de uiteindelijke URL opvraagt, dan is de Referer header tenminste leeg. Verder is het zaak om gewoon te voorkomen dat men toegang krijgt tot de session id, en een eenvoudige oplossing is session.use_only_cookies aan te zetten, waardoor er geen session id's in urls gestopt worden. Uiteraard kun je per sessie de parameters instellen met o.a. session_set_cookie_params
 
Ozzie PHP

Ozzie PHP

28/05/2016 02:02:59
Anchor link
>> Daarnaast geldt dat je te maken hebt met de GC timings binnen PHP, de timeout is daarmee niet alles dat meetelt. Na de timeout gaat de collector aan de slag, en het kan gebeuren dat een sessie pas uren later werkelijk verwijderd wordt.

Ja inderdaad ... de sessie blijft nog even aanwezig totdat de GC in actie komt. Ook weer zo'n leuke. Die kun je heel "strak" afstellen, zodat ie bij ieder request wordt getriggerd, maar dat is dan weer niet lekker voor de performance ... althans dat stelt men. De default session.gc_divisor in mijn php.ini stond maar liefst op 1000 en session.gc_probability op 0! Waarschijnlijk probeert mijn hostingboer op deze manier om zo min mogelijk processorkracht te verbruiken. Maar die GC komt dan dus nooit in actie :-s

>> Dit vereist tegelijk wel dat je in een cookie bijhoudt

Dat gaat toch als het goed is automatisch als je een sessie-start. In de sessie zelf moet ik dan een "last_active_time" of iets dergelijks opnemen, die ik dan vergelijk met de huidige tijd.

>> Hier zijn uiteraard oplossingen voor, zoals een tussenliggende pagina op een neutrale locatie ...

Ik volg niet helemaal wat je hiermee bedoelt. Wat voor pagina bedoel je, en waarom moet de referer leeg zijn? Wie kan daar iets mee?

>> Verder is het zaak om gewoon te voorkomen dat men toegang krijgt tot de session id, en een eenvoudige oplossing is session.use_only_cookies aan te zetten ...

Dat klopt. Dat heb ik gedaan, maar dan nog kan men toch een cookie spoofen met telkens een andere session-id? Wel een hoop werk en weinig kans van slagen .. maar de mogelijkheid is er wel lijkt me.
 
Ben van Velzen

Ben van Velzen

28/05/2016 11:25:01
Anchor link
>> Dat klopt. Dat heb ik gedaan, maar dan nog kan men toch een cookie spoofen met telkens een andere session-id? Wel een hoop werk en weinig kans van slagen .. maar de mogelijkheid is er wel lijkt me.

De mogelijkheid is er wel, maar dat zal volgens hetzelfde stramien (en dus hetzelfde tempo) gaan als het raden van een wachtwoord. Hoe lang gaat het duren om de juiste string te raden uit 63^27 mogelijkheden?

>> De default session.gc_divisor in mijn php.ini stond maar liefst op 1000 en session.gc_probability op 0! Waarschijnlijk probeert mijn hostingboer op deze manier om zo min mogelijk processorkracht te verbruiken. Maar die GC komt dan dus nooit in actie :-s

Ik weet dat op Debian standaard de gc_probability op 0 staat, en met cronjob verouderde session bestanden worden weggegooid. Mogelijk speelt bij jou iets soortgelijks.

>> Dat gaat toch als het goed is automatisch als je een sessie-start. In de sessie zelf moet ik dan een "last_active_time" of iets dergelijks opnemen, die ik dan vergelijk met de huidige tijd.

Als je sessie vernietigd wordt door een timeout lijkt het me niet dat je nog bij de gegevens in de sessie kan, dus je zult dit apart moeten opslaan van je sessie.

>> Ik volg niet helemaal wat je hiermee bedoelt. Wat voor pagina bedoel je, en waarom moet de referer leeg zijn? Wie kan daar iets mee?

Het zou niet de eerste keer zijn dat ik zie dat een aanval getriggerd wordt door een ongelukkige link naar een externe partij, die bij het ontdekken van de URLs naar een backoffice vol aan de slag ging. Hoe beter je je backend verborgen kunt houden, hoe veiliger het blijft. Dit is uiteraard iets dat naast de beveiliging speelt, maar als niemand weet waar hij moet zijn om je backend te benaderen loopt het risico ook enorm terug.
 
Ozzie PHP

Ozzie PHP

28/05/2016 14:36:26
Anchor link
>> Hoe lang gaat het duren om de juiste string te raden uit 63^27 mogelijkheden?

Eens, maar als je een sessie pas na 24 uur een time-out geeft, dan heeft men dus wel een dag de tijd om te 'raden'.

>> Ik weet dat op Debian standaard de gc_probability op 0 staat, en met cronjob verouderde session bestanden worden weggegooid. Mogelijk speelt bij jou iets soortgelijks.

Oké, dat wist ik niet. Ik lees het hier nu inderdaad. Oplossing is inderdaad gewoon om de waarde te wijzigen.

>> Als je sessie vernietigd wordt door een timeout lijkt het me niet dat je nog bij de gegevens in de sessie kan, dus je zult dit apart moeten opslaan van je sessie.

Haha, ja da's inderdaad een goede ... dat gebeurt op het moment dat de sessie dus écht z'n limiet heeft bereikt. Bijv. de sessie timeout vindt na een uur plaats, maar na 20 min. inactiviteit maak je deze onbereikbaar voor de gebruiker (bijv. omdat die in de back-end aan het werk is). Voordat hij verder kan moet hij dan eerst z'n wachtwoord invoeren. Echter, doet hij een uur helemaal niks, dan is de sessie compleet verlopen en zal er een nieuwe sessie worden aangemaakt. Anders gezegd 'achter de schermen' bestaat de sessie een uur, maar na 20 min. inactiviteit moet een gebruiker eerst een wachtwoord invoeren om verder te kunnen. Gaat dat mis, dan kun je de sessie verwijderen/leegmaken.

En hier raken we dus de kern van mijn vraag ... wat is een goede duur voor de sessie timeout? Na hoeveel minuten COMPLETE inactiviteit moet je zeggen: oké, vanaf nu is deze sessie echt niet geldig meer. Daarbij spelen in principe 2 factoren van belang. 1. Je wil een gebruiker voldoende tijd geven om iets te kunnen doen. 2. Je wil een actieve sessie niet te lang 'in leven houden' om sessie-hijacking te voorkomen. Wat gebruik jij zelf meestal als session timeout?

>> ... maar als niemand weet waar hij moet zijn om je backend te benaderen loopt het risico ook enorm terug.

Dat is zeker waar. Goed punt inderdaad.

PS Weet jij trouwens of een verlopen sessiebestand nog benaderd kan worden? Stel een sessie krijgt na een half uur een timeout, maar wordt pas een paar uur later door de gc verwijderd. Kan in de tussentijd dan iemand die sessie nog benaderen door de session id te 'raden', of zegt het sessiebestand dan 'ik ben o niet meer geldig' en gebeurt er verder niks?
Gewijzigd op 28/05/2016 15:09:03 door Ozzie PHP
 
Thomas van den Heuvel

Thomas van den Heuvel

28/05/2016 16:38:04
Anchor link
Wederom lijk je één antwoord te willen op een (hypotethische) vraag die meerdere antwoorden heeft.

Mijn antwoord zou zijn: zou afhangen van de applicatie.

Maar ook: er zijn meerdere manieren om een probleem op te lossen, bijvoorbeeld door het wegnemen van het probleem zelf. In een oplossing waarbij het niet uitmaakt dat een sessie verloopt is het verlopen van een sessie geen probleem...

Het is maar net hoe ver je je catering voor (de domheid?) van een gebruiker wilt laten gaan. Ik ken weinig mensen die in een shopping-spree voor de aankoop nog even een wandeling gaan maken eigenlijk.

It is impossible to make anything idiot proof, because idiots tend to be ingenious.

Quote:
Net als dat je niet wilt dat URLs van het backend bekend worden.

Security through obscurity is zelden een goed ontwerpprincipe.
Quote:
Het zou niet de eerste keer zijn dat ik zie dat een aanval getriggerd wordt door een ongelukkige link naar een externe partij, die bij het ontdekken van de URLs naar een backoffice vol aan de slag ging.

Als ik het bovenstaande zo lees dan was de veiligheid van die applicatie(s) lang niet robuust genoeg. En wederom is dan een menselijke f*ckup de bron van alle ellende (maar je zou dus ook vraagtekens kunnen plaatsen bij de sterkte van security als je dmv een link een backend in kan duiken). Een systeem beveiligen met state-of-the-art shizzle heeft weinig zin als iemand het moeilijk te onthouden wachtwoord als post-it aan zijn/haar monitor plakt eh.

Om ten langen leste antwoord te geven op je generieke vraag, een generiek antwoord:
De default sessie-timeout is een goede sessie-timeout. Te meer omdat deze al naar gelang de situatie on-the-fly aangepast kan worden.
 
Ozzie PHP

Ozzie PHP

28/05/2016 16:54:12
Anchor link
>> In een oplossing waarbij het niet uitmaakt dat een sessie verloopt is het verlopen van een sessie geen probleem...

Dat is zeker waar. De vraag is alleen óf, en zo ja hoe je dit volledig kan dichttimmeren.

>> Te meer omdat deze al naar gelang de situatie on-the-fly aangepast kan worden.

Dit is natuurlijk ietsje te makkelijk ... veel instellingen kunnen on the fly worden aangepast. Betekent echter niet dat je daarom niet hoeft na te denken over een goede basisinstelling.

>> De default sessie-timeout is een goede sessie-timeout.

Oké ... maar leg mij dan eens uit waarom die default setting van 1440 seconden (ofwel 24 minuten) een goede setting is volgens jou? Waar baseer jij dat op? Ik kan je alvast verklappen dat die 1440 seconden per toeval de default zijn geworden, omdat de default van oudsher eigenlijk een dag was (1440 minuten). In de loop der jaren zijn die minuten ooit per ongeluk seconden geworden. Er zit dus niet een of andere gedachte achter die 24 minuten. Maar dan ben ik dus benieuwd waarom dit volgens jou exact de juiste setting is.
Gewijzigd op 28/05/2016 16:56:36 door Ozzie PHP
 
Thomas van den Heuvel

Thomas van den Heuvel

28/05/2016 17:13:33
Anchor link
De default instelling doet verder geen aannames over wat dat ook. Zie het als een initialisatie met een gedocumenteerde waarde. Deze standaard instellen op een andere waarde zonder dat je weet waarvoor deze gebruikt gaat worden is second guessing.

Toegegeven, het is naïef om er vanuit te gaan dat iets per definitie zijn default waarde heeft en het is altijd verstandig om dit te toetsen, maar ik vind het al helemaal takke-irritant als webhosters zelf denken slim te zijn en een heleboel waarden een eigen, en afwijkende, default te geven.

Assumption is the mother of all f*ckups, en ik kon mijzelf wel voor mijn kop slaan toen ik een poos geleden er achterkwam dat een host register_globals aan had staan, maar ik vroeg mij tegelijkertijd af wat de mentale gesteldheid van iemand is om dit zelf zo te configureren als de standaard al jaren "Off" is...
 
Ozzie PHP

Ozzie PHP

28/05/2016 22:08:49
Anchor link
Defaults worden inderdaad vaker zomaar aangepast ... maar bij mij staat de default voor de session timeout wel gewoon op 1440. Dus die is niet aangepast. Ik kan 'm wel zelf wijzigen ... maar de vraag is in hoeverre dat dus een risico met zich meebrengt. Stel dat ik de timeout instel op bijv. 3600 seconden (ofwel een uur) worden mijn websites dan gevoeliger voor session hijacking? Of is het verschil tussen 24 minuten versus een uur verwaarloosbaar in dat opzicht?
 
Ben van Velzen

Ben van Velzen

28/05/2016 22:55:24
Anchor link
In dat opzicht is het verwaarloosbaar. De risico's op hijacking worden ook zwaar overdreven. Het is uiteraard afhankelijk van de responsetijd van je applicatie, maar 63^27 is bijna een 4 met 48 nullen aan combinaties. In theorie kun je een keer geluk hebben en op een key als aaaaaaaaaaaaaaaaaaaaaaaaaaa tegenkomen, maar de kans daarop is 1 op de 63^27. Je beveiliging staat of valt niet met de sessieduur, maar de overige maatregelen. Op een forum als dit zou ik geen IP controle gebruiken, er is geen echt gevoelige informatie. Bij andere applicaties wel, of deels (bijvoorbeeld de eerste 3 octets). Vermoedelijk bestaat de session timeout ook alleen om sessies na verloop van tijd op te kunnen ruimen en heeft het geen ander doel. Hier heb ik geen harde data over, maar het voelt logischer dan iets anders.
 
Ozzie PHP

Ozzie PHP

28/05/2016 22:59:13
Anchor link
Oké, thanks. Gebruik jij zelf ook een langere timeout-duur, of gebruik je de default?
 
Ben van Velzen

Ben van Velzen

28/05/2016 23:17:46
Anchor link
Ik gebruik gewoon de default. Afhankelijk van de applicatie gaat dat gepaard met overige maatregelen, zoals bijvoorbeeld automatisch verlengen mbv ajax requests, IP controles etc. Ik moet er ook bij zeggen dat ik eigenlijk altijd een database session handler gebruik omdat dit wat meer controle geeft over het verloop etc. Het maakt het een stuk eenvoudiger om verdachte sessions te detecteren, en in het geval van een snel wisselend id vanaf 1 ip de toegang te blokkeren. Wat ik doe is niet eens heel relevant, het is per applicatie verschillend, per geval verschillend, het ligt net aan de eisen die je stelt (of die gesteld worden).
Gewijzigd op 28/05/2016 23:20:24 door Ben van Velzen
 
Ozzie PHP

Ozzie PHP

28/05/2016 23:23:58
Anchor link
>> een database session handler

Wat bedoel je daarmee? Dat je geen "fysieke" sessiebestanden hebt, maar dat je alle sessiedata in de database opslaat? Of begrijp ik je nu verkeerd?
 
Ben van Velzen

Ben van Velzen

28/05/2016 23:37:05
Anchor link
Dat bedoel ik inderdaad.
 
Ozzie PHP

Ozzie PHP

29/05/2016 00:10:57
Anchor link
Ah oké ... geinig :-)
 
Ben van Velzen

Ben van Velzen

29/05/2016 00:20:08
Anchor link
Voorbeelden genoeg, er is een topic van eerder vandaag waarin zo'n handler staat. Nu zou ik hem anders opbouwen, maar de strekking van het gebruik van session_set_save_handler is hetzelfde. Je maakt een functie voor het lezen van je sessie, het openen, sluiten etc, en niet onbelangrijk: de gc handler. Je kunt hierdoor veel invloed uitoefenen vanuit je handlers met je implementatie. Het heeft als bijkomend voordeel dat je de sessies centraal kunt weergeven/stoppen etc. Je kunt gebruikers hiermee dus ook controle geven over hun lopende sessies.
 

Pagina: 1 2 volgende »

 

Dit topic is gesloten.



Overzicht

 
 

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.