Privé link in e-mail?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Xaboteur X

Xaboteur X

22/05/2012 11:41:25
Quote Anchor link
Hallo,

Hoe kan ik het best een pagina beveiligen, zodat die enkel reageert op een gegenereerde link in een e-mail?

Ik dacht aan het éénmalig declareren van een ip variabele van de eerste bezoeker, en die variabele als controle gebruiken... Maar hoe doe ik dit éénmalig declareren?

Suggesties?
 
PHP hulp

PHP hulp

22/11/2024 07:48:18
 
Chris PHP

Chris PHP

22/05/2012 11:52:44
Quote Anchor link
Je kunt een random generated string meegeven aan de link, dan dan vervolgens kijken of het klopt.

De link.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<html>
<a href="pagina.php?pid=@iewp8sadlkj54AS#SAD">Bezoek pagina</a>
</html>


De pagina.php.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
if (isset($_GET['pid']) $$ $_GET['pid'] === "@iewp8sadlkj54AS#SAD") {
// Laad hier je pagina die je beveiligd wilt hebben.
}else { echo "Sorry u bent niet bevoegd om deze pagina te bezichtigen. U wordt doorverwezen naar de hoofdpagina.";
header ("refresh:5; url=index.php");
}

?>
Gewijzigd op 22/05/2012 11:54:07 door Chris PHP
 
Xaboteur X

Xaboteur X

22/05/2012 12:27:28
Quote Anchor link
Dag Chris, dat lijkt me inderdaad het meest voor de hand liggende...
Maar voor elke ontvanger, komt er steeds andere inhoud, waardoor zij, door slechts één waarde te veranderen in de url, andermans inhoud kunnen zien.
Daarom dat ik dacht aan een verificatie met hun ip adres.
Of is dit makkelijker op te lossen?
 
Chris PHP

Chris PHP

22/05/2012 12:37:04
Quote Anchor link
Alle mensen die deze email krijgen, heb je die account gegevens in ee database staan?

Want anders kun je daar natuurlijk ook nog de user id aan meegeven en controleren.

Zo ziet je link er dan uit.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<html>
<a href="pagina.php?pid=@iewp8sadlkj54ASD&uid=12">Bezoek pagina</a>
</html>


Let wel dat als je het op IP controleerd, mensen dus nooit vanuit een andere locatie (webmail) of als hun "dynamisch" IP adres wijzigd vanuit de provider naar die link kunnen.

Je kunt het beter controleren aan een aantal constante waardes van de gebruiker. Je kunt als je gebruik maakt van klantnummers natuurlijk ook daar nog eens op controleren.
 
Xaboteur X

Xaboteur X

22/05/2012 12:45:17
Quote Anchor link
Die gegevens heb ik in de database ja.
Maar dat is wat ik bedoel, met bijv een id in die url, die kunnen ze gewoon aanpassen he...

Is het niet mogelijk om voor iedereen een aparte id te genereren en die toch te kunnen valideren op een manier?
 
Chris PHP

Chris PHP

22/05/2012 12:52:14
Quote Anchor link
Uiteraard is dat mogelijk.

Als je je tabellen goed hebt opgezet met een unique id die automatisch oploopt, kun je gebruiken die is namelijk per gebruiker uniek.

Dus dan vervang je die uid gewoon door het id van de user en is hij persoonsgebonden (mits je dit natuurlijk controleerd).

Wat het uiteindelijk misschien makkelijker maakt is om de pagina's ook op te slaan in ee database. Dan kun je die dynamisch genereren als ze met het id op die pagina komen.

Zo verkom je ook dat mensen per ongeluk de pagina van een andere gebruiker kunnen lezen.

Bijvoorbeeld een tabel die paginas heet en dan de volgende velden.

b_id, u_id, key, inhoud, datum, gelezen

Dan heeft ieder bericht een uniek id (b_id) en wordt de user id (u_id) gekoppeld aan dat bericht. Dan zet je bij de key de random generated string zodat hij daar mee kan controleren samen met het u_id. Dan kun je dus zo ook dynamisch de pagina opbouwen.
 
Xaboteur X

Xaboteur X

22/05/2012 16:58:57
Quote Anchor link
Dat wordt het denk ik, een aparte tabel met de user-id gekoppeld aan een random id, welke ik gebruik in de link.
Merci Chris!
 
Chris PHP

Chris PHP

23/05/2012 07:46:33
Quote Anchor link
Graag gedaan,

Succes!
 



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.