Ik heb een url rotator en hierbij moet ik de afkomst doorgeven zodat de webmaster's van de websites in de rotator zien waar hun bezoeker oorspronkelijk vandaan kwam. nu heb ik het volgende:
Nu krijg ik alleen van meerdere gpt eigenaars te horen dat er erg vaak afkomst=onbekend komt te staan. Nu heb ik even gegoogled en ik heb gezien dat $_SERVER['HTTP_HOST'] niet altijd te vertrouwen is, omdat mensen het uit kunnen zetten op hun pc.PHP Code:
if(!isset($_GET['afkomst'])){
if(isset($_SERVER['HTTP_REFERER'])) {
$afkomst=$_SERVER['HTTP_REFERER'];
}
else {
$afkomst="onbekend";
}
$host = $_SERVER['HTTP_HOST'];
$u=$_GET["u"];
$r=$_GET["r"];
header("Location: http://$host/rotator.php?u=$u&r=$r&afkomst=$afkomst");
exit;
}
Is er een alternatief die wel altijd/zo vaak mogelijk goed werkt?
Alvast bedankt!
Wessel
- $_SERVER['HTTP_REFERER'] werkt niet altijd
-
08-01-2011, 10:04 #1
- Berichten
- 388
- Lid sinds
- 15 Jaar
$_SERVER['HTTP_REFERER'] werkt niet altijd
-
-
08-01-2011, 10:23 #2
- Berichten
- 1.197
- Lid sinds
- 17 Jaar
Re: $_SERVER['HTTP_REFERER'] werkt niet altijd
met nieuwe IE en firefox zijn al deze dingen uit te zetten, aangezien ze veel gebruikt worden voor het weergeven van interessante advertenties. Je zult dus geen goed werkende functie vinden die dit bij alle browsers ondersteunt.
-
08-01-2011, 12:37 #3
- Berichten
- 240
- Lid sinds
- 15 Jaar
Re: $_SERVER['HTTP_REFERER'] werkt niet altijd
Origineel gepost door PHP.net
"Not all user agents will set this, and some provide the ability to modify HTTP_REFERER as a feature. In short, it cannot really be trusted."Origineel gepost door Vrije vertaling
"Niet alle user agents (browsers) definiëren deze waarde, en sommige hebben de mogelijkheid om deze waarde aan te passen. Samengevat, vertrouw er niet te veel op."
Verder is er geen oplossing die in de buurt van deze functionaliteit komt. Ook is het niet erg verstandig om deze waarde (van welke oorsprong dan ook) in een URL mee te geven, aangezien deze makkelijk aan te passen is.
-
08-01-2011, 12:39 #4
- Berichten
- 388
- Lid sinds
- 15 Jaar
Re: $_SERVER['HTTP_REFERER'] werkt niet altijd
Ja, dat snap ik allemaal. Maar is er een betere manier om achter de herkomst te komen of is dit helemaal niet mogelijk?
-
08-01-2011, 12:41 #5
- Berichten
- 240
- Lid sinds
- 15 Jaar
-
08-01-2011, 12:48 #6
- Berichten
- 492
- Lid sinds
- 16 Jaar
Re: $_SERVER['HTTP_REFERER'] werkt niet altijd
if(!isset($_GET['afkomst'])){
if(isset($_SERVER['HTTP_REFERER'])) {
$afkomst=$_SERVER['HTTP_REFERER'];
}
else {
$afkomst="onbekend";
}
$host = $_SERVER['HTTP_HOST'];
$u=$_GET["u"];
$r=$_GET["r"];
header("Location: http://$host/rotator.php?u=$u&r=$r&afkomst=$afkomst");
exit;
}
worden de headers direct doorgezet.
-
08-01-2011, 13:40 #7
- Berichten
- 750
- Lid sinds
- 15 Jaar
Re: $_SERVER['HTTP_REFERER'] werkt niet altijd
De header referer van http protocol is inderdaad niet vertrouwen welke in $_SERVER['HTTP_REFERER'] gestopt word
1. Kan veranderd worden met een andere referer in het meest gunstigste geval.
2. Slechte geval kan er ook een Cross scripting (XSS) injection gebruikt worden zeker gevaarlijk wanneer je ook in een cms bijvoorbeeld die gegevens weer inleest denk bijvoorbeeld aan dingen zoals het stelen van sessie id wanneer php de sessie id meegeeft in de cookies, of acties zoals nieuwe pagina's toevoegen of verwijderen aanvaller moet dan wel de structuur van de links weten en de acties moeten door middel van GET werken. Om maar een paar voorbeeld direct te noemen
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic