13
févr.
'11

Le "piège à couillon" de TF1

Publié le 13 février 2011

Mise à jour [16/02/2011] - TF1 a modifié son lecteur Flash et remplacé la méthode incriminée par une version propre, nommée "hasRedirect". La version du player analysée dans cet article était la 4.0.80, celle actuellement en place sur les sites de WAT et TF1 est désormais la 4.0.81 .

Article original du 13/02/2011:

Je me suis (encore) penché sur la sécurité des applications Flash, notamment à cause de la médiatisation du streaming et du tintouin que cela a causé vis-à-vis de l'Hadopi, en espérant trouver quelque-chose du côté de TF1 et M6 (ces deux sociétés ont misé il y a quelques années sur le streaming, avec leur service de "catch-up" TV).

Et j'ai trouvé un truc bien cocasse.

Le player flash de WAT + une méthode bizarre

La plateforme WAT est une plateforme de diffusion de vidéo, propriété de TF1 qui s'en sert aussi de socle pour la diffusion des vidéos de "catch-up", via le protocole RTMPE (pur streaming). Il n'y a donc plus de problème de fuites de vidéos au format FLV, comme j'ai pu l'aborder dans un pécédent post.

Cette plateforme s'articule autour d'un lecteur vidéo développé maison, et intégré notamment dans les sites de WAT (http://www.wat.fr) et de TF1 vidéos (http://videos.tf1.fr). C'est en plongeant les mains dans le code de ce lecteur maison que j'ai pu identifier une routine peu commune:

override public function get hasPiegeACouillon() : Boolean
*
    if (isEmbedMode)
    {
        return PlayerDataManager.getInstance().flashVars.hasRedirect == "1";
    *
return super.hasPiegeACouillon;
}

Et là je suis resté coincé entre le rire et l'étouffement. Je me suis ensuite demandé à quoi servait cette méthode particulière, car des fois on trouve ce genre de choses dans des objets Flash sans qu'elles soient réellement fonctionnelles.

Investigation

J'ai donc fouillé dans le code désassemblé, et j'ai pu identifier la référence à cette méthode:

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);
                        *
                    }
                    else if (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;
                }

Traduisez par: "Si un couillon clique sur la pub, alors on le redirige sur le site concernant la pub" (targetCouillon). On voit clairement que pour les développeurs, la pub est un simple piège à couillons.

Le mot de la fin

J'espère que cette bourde ne traduit pas une considération en place chez TF1, qui consiste à considérer les internautes comme des "couillons", parce que sinon ils sont bien mal partis. De plus, je pense sincèrement que les annonceurs de TF1 et de WAT apprécieront leur humour (ou pas).

<article43|flattr>



Les contenus disponibles sur ce blog sont publiés sous licence Creative Commons BY-NC-SA.
Vous pouvez réutiliser tout ou partie de ces contenus à condition de citer l'auteur et l'origine, vous ne pouvez en faire une utilisation commerciale, et enfin vous devez partager tout travail ou œuvre dérivée sous les mêmes conditions — c'est-à-dire avec la même licence d'utilisation Creative Commons.