| |
|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
Sébastien Night Nouveau WRInaute
Inscrit le: 06 Avr 2007 Messages: 21 Localisation: Nantes
|
Posté le : Jeu Sep 20, 2007 3:03 Sujet du message: Adsense Mobile sur 1 site WAP SANS inclure le script Adsense |
|
|
Je démarre mon expérience dès cette semaine (semaine du lancement d'Adsense for Mobiles en France) en essayant de trouver une alternative à l'inclusion du script PHP de Google dans mon site*.
Le script PHP qu'Adsense nous demande d'inclure dans nos sites est le suivant :
| Code: |
<?php
$GLOBALS['google']['ad_type']='text';
$GLOBALS['google']['channel']='3765672551';
$GLOBALS['google']['client']='pub-6864074922661047';
$GLOBALS['google']['color_border']='555555';
$GLOBALS['google']['color_bg']='FFFFFF';
$GLOBALS['google']['color_link']='0000CC';
$GLOBALS['google']['color_text']='000000';
$GLOBALS['google']['color_url']='008000';
$GLOBALS['google']['format']='mobile_single';
$GLOBALS['google']['https']=$_SERVER['HTTPS'];
$GLOBALS['google']['host']=$_SERVER['HTTP_HOST'];
$GLOBALS['google']['ip']=$_SERVER['REMOTE_ADDR'];
$GLOBALS['google']['markup']='wml';
$GLOBALS['google']['output']='wml';
$GLOBALS['google']['ref']=$_SERVER['HTTP_REFERER'];
$GLOBALS['google']['url']=$_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
$GLOBALS['google']['useragent']=$_SERVER['HTTP_USER_AGENT'];
require('http://pagead2.googlesyndication.com/pagead/show_ads.php');
?> |
Un coup d'oeil à la page show_ads nous permet d'en lire le code source :
| Code: |
<?php
/**
* Copyright (C) 2007 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* @license http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
$google_dt = time();
function google_append_url(&$url, $param, $value) {
$url .= "&" . $param . "=" . urlencode($value);
}
function google_append_globals(&$url, $param) {
google_append_url($url, $param, $GLOBALS["google"][$param]);
}
function google_append_color(&$url, $param) {
global $google_dt;
$color_array = split(",", $GLOBALS["google"][$param]);
google_append_url($url, $param,
$color_array[$google_dt % sizeof($color_array)]);
}
function google_get_ad_url() {
$google_ad_url = "http://pagead2.googlesyndication.com/pagead/ads?";
$google_scheme = ($GLOBALS["google"]["https"] == "on")
? "https://" : "http://";
foreach ($GLOBALS["google"] as $param => $value) {
if ($param == "client") {
google_append_url($google_ad_url, $param,
"ca-mb-" . $GLOBALS["google"][$param]);
} else if (strpos($param, "color_") === 0) {
google_append_color($google_ad_url, $param);
} else if ((strpos($param, "host") === 0)
|| (strpos($param, "url") === 0)) {
google_append_url($google_ad_url, $param,
$google_scheme . $GLOBALS["google"][$param]);
} else {
google_append_globals($google_ad_url, $param);
}
}
google_append_url($google_ad_url, "dt",
round(1000 * array_sum(explode(" ", microtime()))));
return $google_ad_url;
}
$google_ad_handle = fopen(google_get_ad_url(), "r");
while (!feof($google_ad_handle)) {
echo fread($google_ad_handle, 8192);
}
fclose($google_ad_handle);
?>
|
Pourquoi ne pas copier ce fichier tel quel en local ?
Je ne vois pas d'indication contraire à cela dans les conditions d'utilisation que j'ai signées AVANT l'existence d'Adsense Mobile.
Je vais donc vérifier en parallèle de mon expérience, en demandant par mail à l'équipe Google. (si quelqu'un a l'adresse email en question...?)
*Car les risques de XSS - cross site scripting - sont trop élevés : il est trop "facile" de faire croire à un ordinateur (donc à un serveur web) que google.com est à l'adresse xx.yyy.xx.zz (qui est l'IP de l'ordinateur du pirate, comme vous avez deviné) |
|
| |
|
 |
Serious WRInaute accro

Inscrit le: 21 Nov 2005 Messages: 2437
|
Posté le : Jeu Sep 20, 2007 10:13 Sujet du message: Adsense Mobile sur 1 site WAP SANS inclure le script Adsense |
|
|
La solution utilisee par les autres regies est d'autoriser la mise en cache pour 1h ou 24h. Si tu fais une simple copie et que Google modifie le script, les majs ne seront pas prises en compte. Ca n'empeche pas l'attaque.
Une solution est de controler le md5 du script pour voir s'il a change. Si oui, ne rien faire et envoyer un mail pour validation. Comme ca, plus de pub pendant qqs heures mais au moins on llimite les risques.
Dans tous les cas, tu auras toujours une connexion car Google veut connaitre l'IP, le nombre d'impressions, etc. Mais au moins on evite l'execution de script externe. |
|
| |
|
 |
John Smith WRInaute impliqué

Inscrit le: 04 Avr 2007 Messages: 257 Localisation: Au sud de Paris
|
Posté le : Jeu Sep 20, 2007 18:25 Sujet du message: Adsense Mobile sur 1 site WAP SANS inclure le script Adsense |
|
|
Bonsoir,
J'ai installé Adsense mobile sur la partie mobile de mon site et une chose m'échappe. En local, j'ai bien la pub qui s'affiche mais sur mon site, je n'ai rien ! Est-ce que c'est normal ? |
|
| |
|
 |
Sébastien Night Nouveau WRInaute
Inscrit le: 06 Avr 2007 Messages: 21 Localisation: Nantes
|
Posté le : Ven Sep 21, 2007 12:25 Sujet du message: Adsense Mobile sur 1 site WAP SANS inclure le script Adsense |
|
|
| Serious a écrit: |
Une solution est de controler le md5 du script pour voir s'il a change. Si oui, ne rien faire et envoyer un mail pour validation. Comme ca, plus de pub pendant qqs heures mais au moins on llimite les risques. |
Wait... Comment je calcule le md5 d'un script externe ? Ta solution est effectivement très intéressante. |
|
| |
|
 |
Serious WRInaute accro

Inscrit le: 21 Nov 2005 Messages: 2437
|
Posté le : Ven Sep 21, 2007 12:55 Sujet du message: Adsense Mobile sur 1 site WAP SANS inclure le script Adsense |
|
|
En gros:
| Code: |
$script=@file_get_contents('http://google...');
if(md5($script)=='637bca36b40282103c7ecf6ed88f7186')
eval($script);
else
mail(); |
Apres, il y aurait plein de choses a ameliorer (cache, timeout reseau, externaliser les md5 valides pour eviter de modifier le source a chaque fois, ...). |
|
| |
|
 |
| |
|
|
|
|
Autres sujets de discussion :
Définitions :
|
|