Door
Dennis Johannes
op 11-09-2010 22:51
gewijzigd op 11-09-2010 23:59
2.074 views
Hallo,
Ik ben bezig met een script om afkomsten van een aantal site's te willen blokkeren voor een spel op mijn website. Nu weet ik niet goed hoe ik dit aan moet pakken, ik heb het volgende geprobeerd maar dat werkt niet:
<?php
$referer = $_SERVER['HTTP_REFERER'];
$blokkade = array('sitenaam1.nl','sitenaam2.nl');
if (strpos($referer, $blokkade)) {
echo "<BR>Uw herkomst is niet toegestaan!<br />Wij staan alleen hits toe van toegestane website's!<br>";
die();
}
?>
Uiteraard zou ik het in een .htaccess kunnen zetten maar het is de bedoeling dat alleen dit stuk script moet controleren op herkomst zodat diegene die lid is geen punten krijgt.
<?php
$afkomst = $_SERVER['HTTP_REFERER'];
$blokkade = array('sitenaam1.nl','sitenaam2.nl');
if (strpos($afkomst, $blokkade)) {
echo "<br />Uw herkomst is niet toegestaan!<br />Wij staan alleen hits toe van toegestane website's!<br />";
} else {
echo "iets";
}
?>
Kijk eens naar de php pagina van strpos. En let dan vooral eens op de volgorde van de parameters.
Dus welke parameter de "needle" is, en welke de "haystack"
Nouja de volgorde is goed, alleen je moet er op letten dat die 'mixed' datatype van de needle gewoon omgezet wordt in een getal als het geen string is. Oftewel, die array wordt een getal. En dat getal matcht niet.
Je moet dit dus anders aanpakken, zoals met in_array(), meerdere strpos()'es, een loop of nog een andere manier.
En wat hierboven wordt gezegd, je kunt ook de referer manipuleren. Je kunt zelfs gewoon in je browser de opdracht zelf uitvoeren (zoals de url kopieren/plakken) van de site, en dan zie je de pagina ook gewoon. 1 stap meer.
Ik ben bezig met een script om afkomsten van een aantal site's te willen blokkeren voor een spel op mijn website. Nu weet ik niet goed hoe ik dit aan moet pakken, ik
Wat is pecies je doel, wat maakt het uit of iemand via een hyperlink binnenkomt? Toch leuk als je op startpagina of gamepagina komt ? Misschien wil je wel blokkeren dat men jouw spel in een iframe draait ? Daar zijn andere oplossingen voor.
Nee, daar zijn geen oplossingen voor. HTTP_REFERER is gewoon bekend aan de client-side kan, en is te manipuleren. Zelfs zijn er beveiligingspakketten welke deze gewoon leeg laten gezien de privacy.
Als je niet wilt dat mensen met iframes kliks mogen verzamelen via andere sites, om je rank hoger te maken, dan zou ik een submitknop overwegen en een captcha.