Controleer of post van mijn pagina af komt

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2

Danny von Gaal

Danny von Gaal

21/08/2015 15:51:03
Quote Anchor link
@-Aar-: Ik weet hoe ik een md5 hash maak van een uniqueid. Mijn probleem is alleen hoe kan ik dat controleren op een nieuwe pagina wanneer die uniqueid al veranderd is. Moet ik dat dan meegeven op de een of andere manier?

@Thomas: Ik zal de check op verkeerde gebruikersnaam weghalen en veranderen in inloggen mislukt.

Op kantoor heeft elke pc een eigen ip-adres er wordt niet met NAT gewerkt en ook niet met loadbalancers dus op kantoor is het ip-adres zeker wel uniek.

Wat betreft de mysql_real_escape op het wachtwoord is inderdaad fout en ga ik direct weghalen, bedankt voor de tip.
Tevens zal ik de header location aanpassen in Location en een exit toevoegen.
Gewijzigd op 21/08/2015 15:56:32 door Danny von Gaal
 
PHP hulp

PHP hulp

25/04/2024 22:47:25
 
- Ariën  -
Beheerder

- Ariën -

21/08/2015 15:59:29
Quote Anchor link
Danny von Gaal op 21/08/2015 15:51:03:
@-Aar-: Ik weet hoe ik een md5 hash maak van een uniqueid. Mijn probleem is alleen hoe kan ik dat controleren op een nieuwe pagina wanneer die uniqueid al veranderd is. Moet ik dat dan meegeven op de een of andere manier?

In een sessie:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
session_start();
$_SESSION['formHash'] = md5(uniqid());

echo $_SESSION['formHash']; // kan je op elke pagina gebruiken, zolang je session_start(); van te voren gebruikt;
?>


Uiteraard na gebruik weer netjes unset()'en.
Gewijzigd op 21/08/2015 16:00:17 door - Ariën -
 
Danny von Gaal

Danny von Gaal

21/08/2015 16:10:35
Quote Anchor link
Klopt, alleen dan kan ik de inhoud toch niet controleren?
Het enigste wat ik op pagina2 weet is dat er een sessie bestaat met die naam en een waarde heeft.

Nu controleer ik in mijn huidige script op de tweede pagina ook of de inhoud van de sessie overeenkomt met het ip-adres vanaf waar de pagina wordt benaderd.
 
- Ariën  -
Beheerder

- Ariën -

21/08/2015 16:21:16
Quote Anchor link
Danny von Gaal op 21/08/2015 16:10:35:
Klopt, alleen dan kan ik de inhoud toch niet controleren?

Ik zou niet weten waarom het niet kan? Een kwestie van vergelijken met de hidden-field uit je POST.
Gewijzigd op 21/08/2015 16:21:53 door - Ariën -
 
Thomas van den Heuvel

Thomas van den Heuvel

21/08/2015 16:39:15
Quote Anchor link
Danny von Gaal op 21/08/2015 15:51:03:
Mijn probleem is alleen hoe kan ik dat controleren op een nieuwe pagina wanneer die uniqueid al veranderd is.

Dat is de hele insteek van een token: die is alleen de page-access direct nadat je deze instelt en doorgeeft via POST geldig.

Danny von Gaal op 21/08/2015 15:51:03:
Op kantoor heeft elke pc een eigen ip-adres er wordt niet met NAT gewerkt en ook niet met loadbalancers dus op kantoor is het ip-adres zeker wel uniek.

Dat is niet het probleem, het probleem is dat md5(het_unieke_ip) elke keer dezelfde hash oplevert, waardoor dit ding ongeschikt is als token.

Daarnaast zou je je af kunnen vragen of je tokens nodig hebt op een lokaal netwerk, waarbij toch al sprake is van vaste IP's. Al helemaal als dit een intranet applicatie is waarbij geen (anonieme) toegang is van buitenaf.
 
Eddy E

Eddy E

22/08/2015 10:05:25
Quote Anchor link
Pagina 1 (of elke pagina behalve 2)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$_SESSION
['last_page'] = "http://".$_SERVER[HTTP_HOST].$_SERVER[REQUEST_URI];
?>


Pagina 2:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
if($_SESSION['last_page'] == "http://website.nl/ditmoetjelaatsetpaginazijn.php")
?>
 
Danny von Gaal

Danny von Gaal

24/08/2015 09:30:02
Quote Anchor link
Thanks eddy, als dat goed werkt dan zou dat in een keer mijn oplossing kunnen zijn.
@ Thomas: Ik weet dat het op kantoor overbodig is maar ik wil het ook meteen als standaard goed zetten mocht ik later ook ooit een pagina voor op het internet maken.
 
Randy vsf

Randy vsf

24/08/2015 12:27:58
Quote Anchor link
Anders hier eens naar kijken Klik .
Die link legt het hele verhaal uit met de tokens.
 
Danny von Gaal

Danny von Gaal

24/08/2015 14:34:59
Quote Anchor link
Randy Flujowa op 24/08/2015 12:27:58:
Anders hier eens naar kijken Klik .
Die link legt het hele verhaal uit met de tokens.


Thanks, is een handige pagina.
Ik heb deze methode toegepast en werkt goed.
Gewijzigd op 24/08/2015 15:28:10 door Danny von Gaal
 
Thomas van den Heuvel

Thomas van den Heuvel

24/08/2015 19:50:56
Quote Anchor link
Dat artikel beschrijft inderdaad goed hoe zo'n token werkt, maar andere zaken zou ik anders doen.

Iets wat sowieso ontbreekt is dat het token meteen ongeldig wordt gemaakt nadat je deze hebt gecontroleerd. Dit zou je dus in staat stellen om 1x de form pagina te laden (bijvoorbeeld met cURL) en daarna kun je de process-pagina bestoken met hetzelfde token...

Ook het versturen van een mail na een hackpoging lijkt me niet heel erg snugger, hiermee kun je potentieel jezelf mailbomben lol.

Dan die log die wordt geschreven - deze is niet gestructureerd, hier kun je dus ook moeilijk doorheen filteren / zoeken.

Dan de suggestie dat je er maar stripslashes over je data heengooit "for good measure", dat is niet bepaald een fantastisch idee, mogelijk strip je dan teveel. Beter is om gewoon magic_quotes_gpc expliciet uit te zetten. Deze voorziening is/gaat er uit dus je kunt beter je applicaties ook zo opzetten dat je er van uit kunt gaan dat deze voorziening uit staat / er niet is.

strip_tags... ik gebruik het nooit, dit lijkt mij een half measure die zelfden het gewenste effect bereikt.

Al dat geneuzel over dat md5 niet veilig zou zijn voor dit soort zaken... Paranoia much? Tenzij je echt ligt te slapen heb je op een gegeven moment toch wel in de gaten dat iemand je formulier aan het bashen is (vooral als je elke x een mail stuurt... zucht). Wat je natuurlijk ook zou kunnen doen is de naam van het token-veld random maken met een tweede random waarde die je ook meestuurt met je sessie. Dan kan iemand dus ook niet elke keer $_POST['token'] abusen (mits je het form token meteen ongeldig maakt dus...).

En wat er eigenlijk nog ontbreekt is een generieke manier om formulier(veld)en op te bouwen, zodat je je formuliervalidatie -en het werken met formulieren in het algemeen- een stuk kunt automatiseren. Dan wordt het pas echt interessant: als je een formuliersysteem hebt om dit soort dingen in 1x te bakken.
Gewijzigd op 24/08/2015 19:58:02 door Thomas van den Heuvel
 
Eddy E

Eddy E

25/08/2015 21:51:57
Quote Anchor link
En dan komt de 'user-usability' om de hoek.
Ik heb een sterke voorkeur als een formulierveld voor mijn emailadres ook 'email' of 'emailadres' heet.
Dan vult de browser die gegevens namelijk al in. Scheelt heel veel keer mijn naam/adres/etc intypen.

Noem je je formulierveld 'naam_4of4n8f0hergve' gaat dat dus niet meer werken.
Erg vervelend, want "automatisch invullen" werkt dan niet.
En dan moet ik opeens zelf mijn wachtwoord gaan onthouden.
Veiligheid is goed, maar laten we niet overdrijven.
 
- Ariën  -
Beheerder

- Ariën -

25/08/2015 22:06:07
Quote Anchor link
Thomas had het over een token veld, met een unieke naam en waarde. Niet een zichtbaar invoerveld.
 

Pagina: « vorige 1 2



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.