Het omzeilen van if($_COOKIE ..) statement

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • mauricedb
  • Registratie: Maart 2007
  • Laatst online: 01-10 11:09
Vanwege de cookiewet laat ik bezoekers zonder cookie van mijn website doorsturen naar mijn cookies pagina. Hier kunnen ze dan wel of niet akkoord gaan. Nu is het zo dat je berichten en video's op m'n site kan sharen op Twitter en Facebook, maar nu is het dus zo dat als je op de Facebook share knop drukt, hij informatie ophaalt van de cookies pagina, hij stuurt Facebook dus simpelweg door naar de cookies pagina. Bij Twitter gaat het wel goed. Nu is mijn vraag, hoe kan ik Facebook (en andere bots?) doorsturen naar de juiste pagina en dus niet de cookies pagina? Het gebeurt bijv. ook als ik de home pagina check met http://validator.w3.org/

Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 02:53
Voor zover ik in m'n logs kan zien gebruikt Facebook twee specifieke user-agents bij het crawlen van websites:
• facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)
• facebookplatform/1.0 (+http://developers.facebook.com)

Je zou die twee kunnen whitelisten:

PHP:
1
2
3
4
5
6
7
$ua_product = current(explode('/',  $_SERVER['HTTP_USER_AGENT']));
if ($ua_product != 'facebookexternalhit' &&
    $ua_product != 'facebookplatform' &&
    empty($_COOKIE['foo']))
{
     // redirect...
}

[ Voor 17% gewijzigd door Soultaker op 26-07-2012 15:01 ]


Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Bij Twitter gaat het wel goed.
Dan kijk je toch in je logs wat het verschil is tussen een aanroep van Twitter en eentje die van Facebook komt?

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


Acties:
  • 0 Henk 'm!

  • mauricedb
  • Registratie: Maart 2007
  • Laatst online: 01-10 11:09
Soultaker schreef op donderdag 26 juli 2012 @ 14:13:
Voor zover ik in m'n logs kan zien gebruikt Facebook twee specifieke user-agents bij het crawlen van websites:
* facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)
* facebookplatform/1.0 (+http://developers.facebook.com)

Je zou die twee kunnen whitelisten:

PHP:
1
2
3
4
5
6
7
$ua_product = current(explode('/',  $_SERVER['HTTP_USER_AGENT']));
if ($ua_product != 'facebookexternalhit' &&
    $ua_product != 'facebookplatform' &&
    empty($_COOKIE['foo']))
{
     // redirect...
}
Ok cool, hij doet 't, danku :D Ik wist niet waar ik precies op moest zoeken dus dan wordt het al lastig om 't dan zelf uit te zoeken.