link met bepaald id beveiligen
met bijvoorbeeld /pagina?id=54
de ontvanger van de email klikt op de link en gaat naar een formulier met een update query.
De ontvanger wil ik niet laten registreren en inloggen.
mijn vraag is:
hoe kan ik beveiligen dat de persoon alleen dit bepaalde id kan updaten
en niet in de adresbalk van 54 55 kan maken en dit id kan updaten
kom hier niet uit dus hoop op hulp.
En iemand anders krijgt dan wel 55, en weer iemand anders 56?
Klopt.
Je moet dan het ID en de E-mail goed hebben om de update uit te voeren.
Een hele lange unieke hash opsturen en daarmee het werkelijke id opzoeken
In de database sla je bij ieder pagina_id een code op, in dit geval pagina_id=54 en pagina_code=sdvsdj34DFD34dfd
Als de pagina met id 54 wordt aangeroepen vergelijk je de code in de url met de code in de database. Zijn die hetzelfde dan is het een legale aanroep, zo niet dan toon je een waarschuwing.
Die code moet je een script voor maken die een unieke code genereert.
met
$hashedcode = $_GET['hashedcode'];
haal ik het op.
Maar hoe bouw ik nu mijn link op met het & teken ertussen oid?
Code (php)
1
2
3
2
3
<?php
<a href="http://www.homepage.nl/pagina.php?id=' . $id . '&' . $hashedcode . '">KLIKKEN</a>
?>
<a href="http://www.homepage.nl/pagina.php?id=' . $id . '&' . $hashedcode . '">KLIKKEN</a>
?>
Gewijzigd op 02/12/2010 21:11:45 door scrippy do
Code (php)
Gewijzigd op 02/12/2010 21:48:17 door Ozzie PHP
thanx Ozzie 't werkt
graag gedaan en succes ermee!
Scrippy do op 02/12/2010 21:11:07:
Maar hoe bouw ik nu mijn link op met het & teken ertussen oid?
Code (php)
1
2
3
2
3
<?php
echo '<a href="http://www.homepage.nl/pagina.php?id=' . $id . '&' . $hashedcode . '">KLIKKEN</a>';
?>
echo '<a href="http://www.homepage.nl/pagina.php?id=' . $id . '&' . $hashedcode . '">KLIKKEN</a>';
?>
Ik zou het ook zo doen als SanThe. Vind die manier van Ozzie een beetje onoverzichtelijk.
Naja, is maar net waar je de voorkeur aan geeft. Als je een html pagina (view) hebt waarin je af en toe een keer een waarde wilt echo'en dan is mijn manier toch echt wel logischer. Bovendien, door de gehele regel te echo'en gooi je alle tekst door de php parser wat niet ten goede komt aan de performance.