Login met sessies veilig?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Davey Mat

Davey Mat

08/01/2013 22:03:33
Quote Anchor link
Hallo allemaal,

Ik heb in php een site waarbij alleen gebruikers met een account toegang mogen krijgen tot de content.
Ik heb dit dit stukje code geinclude bovenaan elke pagina van mijn site:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?
if(!isset($_SESSION['user'])){
echo "<div class=\"container\"><div class=\"centertitle\"><h1>Sorry, u heeft geen toegang tot deze pagina!</h1></div><br>";
echo "<div class=\"centerdiv\">Het ziet er naar uit dat je niet bent ingelogd. Om in te loggen klik dan <a href=\"http://www.mijnsite.nl/\">hier!</a><br></div></div>";
include "inc/footer.php";
echo "</div></body></html>";
exit;
}

?>

Is dit zo veilig om te gebruiken? Of raden jullie aan om dit op een andere manier te doen?
 
PHP hulp

PHP hulp

24/09/2020 15:47:11
 
- Raoul -

- Raoul -

08/01/2013 22:12:16
Quote Anchor link
Gebruik geen SHORTTAGS!!!!!

Verder is het veilig, want sessies zijn niet manipuleerbaar clientside.
Lijn ook eens je code uit, dit is echt niet net.
 
Aad B

Aad B

08/01/2013 22:47:09
Quote Anchor link
- Raoul - op 08/01/2013 22:12:16:
Gebruik geen SHORTTAGS!!!!!
Misschien handig om aan TS uit te leggen wat SHORTTAGS zijn en waarom het gebruik niet mag, in plaats van vijf uitroeptekens?
Gewijzigd op 08/01/2013 22:49:14 door Aad B
 
Roel -

Roel -

08/01/2013 23:08:09
Quote Anchor link
Zoals Raoul zegt, gebruik in het vervolg geen shorttags. Je kunt in PHP een <? of een <?php tag gebruiken om PHP-code te openen.

Bij veel hostingproviders is <? echter uitgeschakeld, waardoor je dus niet altijd de garantie hebt dat je PHP-code werkt. Gebruik daarom liever altijd <?php, dan zit je sowieso veilig.
Gewijzigd op 08/01/2013 23:09:49 door Roel -
 
Bas IJzelendoorn
Beheerder

Bas IJzelendoorn

08/01/2013 23:11:35
Quote Anchor link
ik snap trouwens ook niet waarom je regel 3 en 4 niet zou samenvoegen. Heeft niet met veiligheid te maken overigens.
Gewijzigd op 08/01/2013 23:20:24 door Bas IJzelendoorn
 
Obelix Idefix

Obelix Idefix

08/01/2013 23:25:48
Quote Anchor link
In het kader van tips:
Ik zou bij echo ' gebruiken, zodat je bij de HTML die er in staat de " niet hoeft te escapen.
 
Tim S

Tim S

09/01/2013 01:28:46
Quote Anchor link
Je kan ook doen if isset $session[ user] && $session[user] == registered voor als de in de toekomst meerdere gebrukers heb.
 
- SanThe -

- SanThe -

09/01/2013 09:22:46
Quote Anchor link
Tim Slootweg op 09/01/2013 01:28:46:
if isset $session[ user] && $session[user] == registered


Waarom een voorbeeld geven met zo veel fouten?

if(isset($_SESSION['user']) && $_SESSION['user'] == 'registered')
 
No One

No One

09/01/2013 09:24:23
Quote Anchor link
@SanThe: er bestaat ook zo iets als pseudo code...
 
Mebus  Hackintosh

Mebus Hackintosh

09/01/2013 10:04:35
Quote Anchor link
No One op 09/01/2013 09:24:23:
@SanThe: er bestaat ook zo iets als pseudo code...


Wat verwarrend kan zijn voor mensen die er al niet zoveel van snappen..
 
No One

No One

09/01/2013 10:07:53
Quote Anchor link
@mebus..als ze er niet zoveel van snappen dan zou ik ze willen aanraden eerst de basis goed aan te leren ;)
 
Mebus  Hackintosh

Mebus Hackintosh

09/01/2013 10:08:57
Quote Anchor link
No One op 09/01/2013 10:07:53:
@mebus..als ze er niet zoveel van snappen dan zou ik ze willen aanraden eerst de basis goed aan te leren ;)


=true :-)
 
Kris Peeters

Kris Peeters

09/01/2013 10:25:20
Quote Anchor link
Ik zal ook altijd pleiten voor bottom up.
Als je geen deftige voeling hebt met de syntax; zal je er niet geraken.

Mensen die hier 100 lijnen code posten (met sessies, met database...) en dan afkomen met "Wat betekent die parse error ... ?"
Daar heb ik het moeilijk mee.
 
Davey Mat

Davey Mat

09/01/2013 10:52:09
Quote Anchor link
Ik ben erg geïnteresseerd in het leren van php en vind het erg fijn dat ik zoveel behulpzame reacties krijg!
Ik heb mijn code aangepast en deze ziet er nu zo uit:
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
<?php
if (!isset($_SESSION['user']))
    echo '<div class="container">
    <div class="centertitle">
    <h1>Sorry, u heeft geen toegang tot deze pagina!</h1>
    </div>
    <br>
    <div class="centerdiv">Het ziet er naar uit dat je niet bent ingelogd. Om in te loggen klik dan <a href="http://www.mijnsite.nl/">hier!</a><br>
    </div>
    </div>'
;
    include 'inc/footer.php';
    echo '</div>
    </body>
    </html>'
;
    exit;
}

?>

Bedankt voor jullie reacties!
Ik had even geen erg in de short tags omdat mijn host hier gewoon mee om kan gaan, maar op jullie aanraden heb ik dit aangepast. De echo's van regel 3 en 4 heb ik nu ook bij elkaar gestopt.
Ik heb nu nieuwe vragen over de reacties:

1. Echo gebruik ik nu met enkele ' ipv " in dit script, is dit altijd het slimst om te gebruiken bij een echo?
2. Het "uitlijnen" van mijn script, doe ik dat zo op deze manier goed of niet? En is er misschien ergens een tutorial beschikbaar over het uitlijnen van je script?
3. if(isset($_SESSION['user']) && $_SESSION['user'] == 'registered'), dit gebruik ik alleen als ik een specifieke gebruiker toegang tot content wil geven toch? Zo gebruik ik het namelijk om de administrator toegang te verlenen tot bepaalde functies waar een normale gebruik niet bij mag.

Pseudo code vind ik goed hoor, ik denk dat ik php al een beetje onder de knie heb, maar erg ervaren ben ik nog niet. Als ik iets niet snap dan vraag ik het gewoon:). In ieder geval nog bedankt voor de reacties!
Gewijzigd op 09/01/2013 10:59:24 door Davey Mat
 
Tim S

Tim S

09/01/2013 12:00:49
Quote Anchor link
Op de ipad duurt code zo lang om te schrijven....
 
Donny Wie weet

Donny Wie weet

09/01/2013 12:37:00
Quote Anchor link
No One op 09/01/2013 09:24:23:
@SanThe: er bestaat ook zo iets als pseudo code...


En dat is?
 
Moose -

Moose -

09/01/2013 12:45:49
Quote Anchor link
http://tinyurl.com/bam2vng hier wordt dat goed uitgelegd
 
No One

No One

09/01/2013 12:47:03
Quote Anchor link
@Donny dat is een vorm van code typen waarbij je je niet druk maakt om quotjes of correctheid maar gewoon om even een beeld te vormen van wat je bedoeld...het kan in vele vormen en maten zoals die van tim:

if isset $session[ user] && $session[user] == registered


maar ook:
if jij niet snap then
ask again
else
you're welcome

is al zoiets...
 
Ozzie PHP

Ozzie PHP

09/01/2013 13:08:39
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
als (iets) {
  // doe iets
} anders {
  // doe iets anders
}
 
Kris Peeters

Kris Peeters

09/01/2013 13:31:29
Quote Anchor link
Davey Mat op 09/01/2013 10:52:09:
...
3. if(isset($_SESSION['user']) && $_SESSION['user'] == 'registered'), dit gebruik ik alleen als ik een specifieke gebruiker toegang tot content wil geven toch?
...


Wel, je kiest zelf welke betekenis je aan die variabele wil geven.
Wat was jouw plan met die variabele? Zou je daar bv. de username in steken?

Dan is
if(!isset($_SESSION['user'])){
ruim voldoende.
$_SESSION['user'] bestaat niet -> gebruiker is niet ingelogd. Meer moet dat niet zijn.
 
Tim S

Tim S

09/01/2013 13:52:22
Quote Anchor link
Ja, ik wou alleen maar even aangeven dat je ook makkelijk met meerdere gebruikers type kan werken. Maar dit kan je ook later doen.
 



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.