Sessies en veiligheid
Sessies en veiligheid
Gesponsorde koppelingen
Inhoudsopgave
11 reacties op 'Sessies en veiligheid'
Gesponsorde koppelingen
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??
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??
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:
@nangko je kan heel makkelijk controleren of iemand van een andere website een POST opdracht naar jou script sturen:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
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";
}}
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";
}}
Hallo,
Bedankt voor deze tutorial!
Zou iemand mij alleen deze code willen uitleggen?
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!
Bedankt voor deze tutorial!
Zou iemand mij alleen deze code willen uitleggen?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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!!
}
?>
// 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!
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!!
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!!
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).
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.
- Details
Door:
Dani?l Bakker- 11 jaar geleden
- 1.956 x bekeken
- Labels
- Geen tags toegevoegd.
- PHP tutorials opties
- Beveiliging
- Nieuwste PHP tutorials
- PHP tutorial toevoegen


PHP hulp
0 seconden vanaf nu