TF1 cible le "Couillon" à temps de cerveau disponible

Publié le 20 février 2011 par Jcr3

Le 13 février dernier Virtualabs publiait les résultats de ses investigations sur la sécurité des applications Flash, en raison de l'Hadopi notamment (…).

En creusant du côté de TF1 et M6, deux sociétés qui ont misé sur le streaming, avec des services de "catch-up" TV, une surprise attendait l'auteur de l'article.

Le code du player flash de WAT (protocole RTMPE, pur streaming), propriété de TF1, intégré aux sites WAT et TF1 vidéos, contenait une routine inhabituelle :

override public function get hasPiegeACouillon() : Boolean

  {

   if (isEmbedMode)

   {

   return PlayerDataManager.getInstance().flashVars.hasRedirect == "1";

   }

   return super.hasPiegeACouillon;

   }

TF1 a depuis modifié son lecteur Flash remplaçant la version 4.0.80 étudiée ici, par la 4.0.81.

A quoi servait donc ce PiegeACouillon?

Tout simplement, à rediriger l'internaute vers le site commercial de la banière. En clair, "Si un couillon clique sur la pub, il est redirigé vers le piège à couillons c'est à dire le site qui fait de la pub" (targetCouillon - cibleCouillon).

Pour les développeurs de TF1, la pub est un piège à couillons et le couillon c'est nous... Enfin ceux qui regardent TF1 (difficile il est vrai de leur donner tort) mais qui en doutait?

Le code en question :

     case"BAR_CLICKED":
{
if(super.playerState.currentErrorType == PlayerState.ERROR_TYPE_RSYND)
{
PlayerUtil.openPage(PlayerContextManager.getInstance().currentContextRules.targetCouillon);
return;
}
if(PlayerContextManager.getInstance().currentContextName == PlayerContext.CONTEXT_PLAYER_PUB || PlayerContextManager.getInstance().currentContextRules.hasPiegeACouillon&!(super.playerDataManager.flashVars.playerType == "watPlayer"&super.playerState.currentMediaObject.media.visibleOnWAT != false))
{
if(PlayerContextManager.getInstance().currentContextName == PlayerContext.CONTEXT_PLAYER_PUB ||super.playerDataManager.flashVars.playerType == "watPlayer"&super.playerState.currentMediaObject.media.visibleOnWAT != false||super.playerDataManager.flashVars.playerType == "tf1Player"&super.playerDataManager.flashVars.permalink != null)
{
PlayerUtil.openPage(PlayerContextManager.getInstance().currentContextRules.targetCouillon);
}
}
elseif(super.playerState.currentPlayerState == PlayerState.CURRENT_PLAYER_STATE_WAITING)
{
super.playerState.currentPlayerState = PlayerState.CURRENT_PLAYER_STATE_PAUSING;
}
else
{
super.playerState.wishPlayerState = PlayerState.WISH_PLAYER_STATE_PLAY;
}
break;
}

Via Korben