Après ces deux topics : http://www.developpez.net/forums/sho....php?p=3452530 et http://www.developpez.net/forums/sho...d.php?t=587186. J'ai enfin réussi à faire ce que je voulais...

Donc petit résumé :
J'ai un serveur "www." en https avec bande passante limité. un serveur "images." en https lui aussi avec bande passante illimité. Les membres peuvent poster sur le www (commentaires) et laisser une signature qui peut donc être en image. (On appellera mon domaine meskalyn.net pour les exemples).

Si une image n'est pas hébergée sur du https, cela "casse" l'encryption et mets une jolie alerte sur Internet Explorer...

J'ai donc plus ou moins réussi à faire ce que je voulais, c'est à dire que lors d'une image en :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
[img]http://test.net/image.jpg[/img]
Mon parser BBCode va remplacer ça par :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
<img src=\"".image_cache("http://test.net/image.jpg")."\" />
Où la fonction "image_cache" est la suivante (disposée sur le www)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
function image_cache($url) {
function valid_name($chainenonvalide)
{
  $chainenonvalide = preg_replace('`\s+`', '_', trim($chainenonvalide));
  $chainenonvalide = str_replace("'", "_", $chainenonvalide);
  $chainenonvalide = preg_replace('`_+`', '_', trim($chainenonvalide));
  $chainevalide=strtr($chainenonvalide,",/:[]?ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ","------aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn");
  return ($chainevalide);
}
// création de l'image sur le script
$test = file("http://images.meskalyn.net/cache/imagecache.php?img_url=".$url);
return "https://images.meskalyn.net/cache/img/".valid_name($url)."";
}
Ce script "appel" le fichier imagecache.php qui s'occupera de créer l'image sur le serveur d'image...

Le fichier imagecache.php :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
<?php
 
function valid_name($chainenonvalide)
{
  $chainenonvalide = preg_replace('`\s+`', '_', trim($chainenonvalide));
  $chainenonvalide = str_replace("'", "_", $chainenonvalide);
  $chainenonvalide = preg_replace('`_+`', '_', trim($chainenonvalide));
  $chainevalide=strtr($chainenonvalide,",/:[]?ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ","------aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn");
  return ($chainevalide);
}
 
$img_url = $_GET["img_url"];
$imagedata = file_get_contents($img_url);
$newfile = fopen(valid_name($img_url), "w");
fwrite($newfile, $imagedata);
fclose($newfile);
?>
J'ignore si j'ai été suffisamment clair, mais au final, si l'un de mes membres mets dans son BBCode un .jpg ou .gif qui est en fait un vilain script php... le script est téléchargé... Il peut même mettre directement un fichier php s'il fouille un peu pour retrouver l'URL du "cacheur"...

Comment sécuriser cette fonction ?