Beveiliging tegen F5
Goedemiddag,
Ik zou iets moeten vinden waardoor gebruikers van mijn website als ze de functie "Vernieuwen - F5" gebruiken, omgeschakeld worden naar een pagina die ik kan instellen, bv de home-pagina. Heeft iemand een idee?
Dank!
Ik zou iets moeten vinden waardoor gebruikers van mijn website als ze de functie "Vernieuwen - F5" gebruiken, omgeschakeld worden naar een pagina die ik kan instellen, bv de home-pagina. Heeft iemand een idee?
Dank!
Vergeet dit maar gerust, mijn F5 is van mij, daar blijf jij vanaf.
Maar wat is jouw eigenlijke probleem? Ik kan me haast niet voorstellen dat je per definitie een hekel hebt aan F5, dat zou discriminatie zijn t.o.v. F6 en F7, etc.
Maar wat is jouw eigenlijke probleem? Ik kan me haast niet voorstellen dat je per definitie een hekel hebt aan F5, dat zou discriminatie zijn t.o.v. F6 en F7, etc.
Misschien kun je op F1(helptoets) drukken Jens, die heeft altijd een oplossing :D
'pgFrank:
... Ik kan me haast niet voorstellen dat je per definitie een hekel hebt aan F5, dat zou discriminatie zijn t.o.v. F6 en F7, etc.
Hahaha, lol. :-)
Met header() kun je de gebruiker naar een andere pagina sturen. Hierdoor ben je dus op een nieuwe pagina waar f5 de pagina niet meer ververst en dus de post gegevens nog een keer stuurt. Dit is wellicht je oplossing
Ik begrijp wat je bedoelt Crispijn, maar ik zoek écht een code dat de gebruiker naar bv de homepage wordt gestuurd wanneer hij op F5 drukt.
Mijn glazenbol is niet verder toereikend. De rest zul je toch echt zelf in moeten vullen. Het hele header() verhaal had je natuurlijk zelf op kunnen zoeken
'Mitchelp:
Is dit een grapje??
Dit bedoelt hij:
'Jens:
Is dit een grapje??
Dit bedoelt hij:
Dat grapje heb je goed opgemerkt.
Ik geloof er niks van
if($f5 != '1')
{
je site
$f5 = '1';
}
else
{
header(loacation: lala.php);
}
Zo krijg je bij een refresh gewoon dat hij naar een andere pagina word gestuurd.
Zorg wel dat je op die andere pagina de variable weer unset, in het geval dat je het vaker gebruikt.
{
je site
$f5 = '1';
}
else
{
header(loacation: lala.php);
}
Zo krijg je bij een refresh gewoon dat hij naar een andere pagina word gestuurd.
Zorg wel dat je op die andere pagina de variable weer unset, in het geval dat je het vaker gebruikt.
Nico je maakt nu een grapje toch ofniet?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?PHP
// Start session
session_start();
// Set Vars
$F5 = $_SESSION['F5'];
if(!$F5=="Niet_Mogelijk"){
// Eerste keer dat je de pagina laad
// Maak een session aan
$_SESSION['F5'] = "Niet_Mogelijk";
}else{
/* Laad Site niet zien of geef een header oid aan
Let wel op dat je de sessie stopt of aanpast zodat
de pagina later weer gezien kan worden */
print("U kunt deze site maar 1 keer bekijken");
}
?>
// Start session
session_start();
// Set Vars
$F5 = $_SESSION['F5'];
if(!$F5=="Niet_Mogelijk"){
// Eerste keer dat je de pagina laad
// Maak een session aan
$_SESSION['F5'] = "Niet_Mogelijk";
}else{
/* Laad Site niet zien of geef een header oid aan
Let wel op dat je de sessie stopt of aanpast zodat
de pagina later weer gezien kan worden */
print("U kunt deze site maar 1 keer bekijken");
}
?>
Ik zou wel een Session gebruiken ipv een normale $var ;)
Gewijzigd op 01/01/1970 01:00:00 door > Dice
Maar als je dit op al je pagina's wilt toepassen, zul je het toch anders moeten aanpakken. Bijvoorbeeld door de $_SERVER['REQUEST_URI'] op te slaan in je sessie.
Die check of $to anders is dan $last is om een oneindige doorverwijsloop te voorkomen. Als hij steeds maar blijft doorverwijzen naar dezelfde pagina, lijkt het natuurlijk net of je refresht, en dat willen we voorkomen.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
session_start();
$last = isset($_SESSION['last']) ? $_SESSION['last'] : null;
$to = '/index.php'; // Denk om die / ervoor: het moet exact hetzelfde zijn als de REQUEST_URI die je krijgt op die pagina.
if($last == $_SERVER['REQUEST_URI'] && $to != $last)
{
header('Location: '.$to);
exit();
}
else
{
$_SESSION['last'] = $_SERVER['REQUEST_URI'];
}
// Hier de rest van je pagina.
?>
session_start();
$last = isset($_SESSION['last']) ? $_SESSION['last'] : null;
$to = '/index.php'; // Denk om die / ervoor: het moet exact hetzelfde zijn als de REQUEST_URI die je krijgt op die pagina.
if($last == $_SERVER['REQUEST_URI'] && $to != $last)
{
header('Location: '.$to);
exit();
}
else
{
$_SESSION['last'] = $_SERVER['REQUEST_URI'];
}
// Hier de rest van je pagina.
?>
Die check of $to anders is dan $last is om een oneindige doorverwijsloop te voorkomen. Als hij steeds maar blijft doorverwijzen naar dezelfde pagina, lijkt het natuurlijk net of je refresht, en dat willen we voorkomen.
Wat is nu het daadwerkelijke probleem? F5 is geen probleem, dat is gewoon functionaliteit van de browser. Daar heb jij niet aan te komen, ongeacht de problemen die in jouw systeem zouden kunnen ontstaan. Jij hebt gewoon deze problemen op te lossen en daarmee klaar.
Grappenmakers die een forum met dubbelposts willen volspammen, kun je zeer eenvoudig wegdrukken, in een sessie kun je van alles bijhouden, ook hun vorige pagina, in een database kun je een UNIQUE gebruiken, etc. etc. Er zijn diverse mogelijkheden om echte problemen in je systeem te onderdrukken.
Grappenmakers die een forum met dubbelposts willen volspammen, kun je zeer eenvoudig wegdrukken, in een sessie kun je van alles bijhouden, ook hun vorige pagina, in een database kun je een UNIQUE gebruiken, etc. etc. Er zijn diverse mogelijkheden om echte problemen in je systeem te onderdrukken.




