Sessies en veiligheid

Door Daniël Bakker, 26 jaar geleden, 9.512x bekeken

Sessies en veiligheid

Gesponsorde koppelingen

Inhoudsopgave

  1. Veiligheid?! Pff… ik gebruik toch sessies!
  2. Superglobals
  3. Het echte werk…
  4. Tot slot… de hash

 

Er zijn 11 reacties op 'Sessies en veiligheid'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen


25 jaar geleden
 
0 +1 -0 -1
Hallo Daniel, ik ben nog niet zo lang bezig met php, maar bij mijn php.ini file staat standaard register_globals op of zodat je niet via een url truukje (login.php?login=1) een variabele zomaar een andere waarde kan geven. In deze mode heb je zelf in de hand welke variabelen je via een url verzoek (get) wilt gebruiken (dus niet je authenticatie variabelen)... Dit alleen is natuurlijk niet genoeg, maar ik vind dit persoonlijk wel een hele mooie (en simpele) mannier om je variabelen te "beschermen" ;)
Ik weet niet precies hoe het met de POST methode gaat (bijvoorbeeld bij het gebruik van formulieren).. Kan iemand zomaar een POST opdracht die jij niet in je script hebt opgenoemen naar jouwn script sturen zoals dat wel kan met de Get methode (url verzoeken)kan??


25 jaar geleden
 
0 +1 -0 -1
Hahaha nangko nog steeds bezig in de PHP man. groeten


24 jaar geleden
 
0 +1 -0 -1
Zou je er mischien bij willen zetten waar wat in moet...
ik begrijp er niet zo hele veel van... :p
zal wel aan mij liggen..


24 jaar geleden
 
0 +1 -0 -1
misschien een beetje laat maar beter dan nooit.....
@nangko je kan heel makkelijk controleren of iemand van een andere website een POST opdracht naar jou script sturen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
if ($_SERVER['REQUEST_METHOD'] == POST) {  
//kijkt of er iets verstuurt is met POST

$vorige_url = getenv("HTTP_REFERER");
$post_url = "http://www.jousite.nl/post.php";
//de link waarvandaan de POST moest komen
  
//bepaalt de url waarvan de POST vandaan kwam


if ($vorige_url != $post_url) {
echo "u kan niet vanaf een andere locatie dan $post_url iets versturen";
}}


24 jaar geleden
 
0 +1 -0 -1
?>

(srry was vergeten de php code te beeindigen.....)


23 jaar geleden
 
0 +1 -0 -1
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?PHP
Annuh
annuh
21 jaar geleden
 
0 +1 -0 -1
Hallo,
Bedankt voor deze tutorial!
Zou iemand mij alleen deze code willen uitleggen?
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
<?
    // start de sessie
    session_start();

    // ip check en overige dingen..

    $sessdata = $_SESSION;
    unset($sessdata[?hash?]);

    sessdata_str = serialize($sessdata);
    $md5hash = md5($sessdata_str);

    // controleren van de hash
    if ($_SESSION[?hash?] == $md5hash)
    {

        // hash komt overeen! Sessie is geldig!!
    }
?>


Ik wil namelijk op de inlogpagina van mijn inlog script een random code generen (hash toch?) en die code in een session zetten en zodoende op de volgende pagina's controleren of het nog steeds dezelfde persoon is.

Gebeurd dat hier ook? Maar wat moet ik dan op de inlogpagina zetten en wat op de 'vervolgpagina' om te kijken of het nog steeds dezelfde sessie is?
Alvast bedankt!
Willem van weesenbeek
willem van weesenbeek
20 jaar geleden
 
0 +1 -0 -1
ik heb een vraagje bij mij loggen de gasten in met een naam maar hoe moet ik die weergeven op mijn site met cookies weet ik wel maar sessies niet
Martijn Wieringa
Martijn Wieringa
20 jaar geleden
 
0 +1 -0 -1
Situatie schets:
Een brave klant van een webshop plaats producten in zijn winkelwagen. PHP linkt de winkelwagen aan de klant dankzij de welbekende sessie variabelen.

Een hacker komt langs, en weet (bij toeval?) de session_id van de brave klant te raden voordat deze heeft kunnen afrekenen. Gevolg: de sessie wordt netjes ge-destroyed, en de brave klant is zijn complete bestelling kwijt :(

Frustratie bij de brave klant, dus die googled naar een concurent...

Conclusie:
Detecteren en blokkeren van een eventuele hacker: JA
Vernietig van de betreffende sessie ZEER BESLIST NEE!!
Robert Deiman
Robert Deiman
20 jaar geleden
 
0 +1 -0 -1
@Pholeron
Je maakt er wel een mooie situatie van, maar in dat geval valt het allemaal nog wel mee. Overigens is dit systeem meer geschikt voor een administratie panel bijvoorbeeld. Dan wil je dat er uitgelogd wordt, zodat er niets kan worden gewijzigd.
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Riemer
Riemer
20 jaar geleden
 
0 +1 -0 -1
Het hangt natuurlijk ook van de situatie af, is het een admin panel dan is er een striktere security policy nodig, gaat het om een webwinkel zoals pholeron is het misschien makelijker om een standaart tekst naar de hacker toe te sturen van 'actie niet gelukt blabla' in iedergeval geef hem de informatie niet dat jij weet dat hij jouw probeert te hacken. Wel natuurlijk logje bij houden van de illegale actie.

Maarja bij welk programma is dit niet zo? soms moet je keuzes maken bijv gebruik accounts. Mogen gebruikers meerdere accounts aanmaken of niet (webwinkel ja, adminpanel nee).

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. Veiligheid?! Pff… ik gebruik toch sessies!
  2. Superglobals
  3. Het echte werk…
  4. Tot slot… de hash

Labels

  • Geen tags toegevoegd.

PHP tutorial opties

 
 

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.