On a cloné mon site :( Riposte ?

On a cloné mon site :( Riposte ? - PHP - Programmation

Marsh Posté le 29-10-2005 à 18:39:57    

Bonjour,
 
Un mec a eu la super idée de cloner mon site ou du moins une page en y rajoutant des liens vers des programmes qui modifient la base de registre, enfin bref un truc pas sympa pour le visiteur quoi... et comme tous les autres liens mennent vers mon site, je recois sans arret des plaintes sur mon e-mail !!
 
Comme l'hébergeur de son site ne m'a jamais répondu ( 4 mois que ca dur ! ) j'ai décidé de riposter comme je le pouvais. Déjà j'ai passé à l'air du PHP et comme ca tous les liens de sa page clonée mennent à mes anciennes pages HTML que j'ai modifié pour y mettre un message comme quoi son site était qu'une copie etc... mais là où ca me pose un problème c'est mon bouton "accueil" qui est un lien dur vers mon site !  
 
Donc ma question : peux-t-on interdire l'accès à mon site si le visiteur est en provenance de sa page clonée ?  
 
Genre un script PHP qui analyse la provenance du visiteur et si celle ci est l'adresse de son site clone, hop ca renvoit vers une page special Warning :D
 
Merci pour la réponse et si celle-ci se trouve sur le forum dsl parce que j'ai déjà bien cherché ^_^'

Reply

Marsh Posté le 29-10-2005 à 18:39:57   

Reply

Marsh Posté le 29-10-2005 à 19:02:02    

oui, soit par referer dans .htaccess, soit via php dans ce genre :

Code :
  1. if(isset($_SERVER['HTTP_REFERER'])){
  2.   $matches = array();
  3.   if (preg_match("/^(http:\/\/)?([^\/]+)/i", $_SERVER['HTTP_REFERER'], $matches)){
  4.     if ($matches[2] == 'example.org'){
  5.      die('Warning !');
  6.     }
  7.   }
  8. }


ce genre de pratique est intolérable
petit musée des horreurs http://www.pirated-sites.com/

Reply

Marsh Posté le 29-10-2005 à 19:11:24    

Bah non puisque ca ne concerne que la page d'accueil.


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 29-10-2005 à 19:13:30    

Oui juste ! ^^'
 
Par contre j'ai : Warning: Unknown modifier '/' in /var/www/free.fr/9/2/kojiweb/index.php on line 4  
 
ligne 4 correspond donc a :  

Code :
  1. if (preg_match("/^(http://)?([^/]+)/i", $_SERVER['HTTP_REFERER'], $matches)){


Reply

Marsh Posté le 29-10-2005 à 19:14:09    

oui, pis y'a include() qui existe aussi ...
 
EDIT pur le unknown modifier : c'est le bug HFR des antislashes, que j'ai oublié
voici en vrai : '/^(http:\/\/)?([^\/]+)/i'


Message édité par shakpana le 29-10-2005 à 19:15:22
Reply

Marsh Posté le 29-10-2005 à 19:15:08    

C'est à dire?


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 29-10-2005 à 19:16:32    

dwogsi a écrit :

C'est à dire?


la regexp dans un fichier inclut sur toutes les pages concernées, non ?
c'était en réponse à gernouille ...

Message cité 1 fois
Message édité par shakpana le 29-10-2005 à 19:17:24
Reply

Marsh Posté le 29-10-2005 à 19:23:32    

Bon je suis trop noob je crois...
 
J'ai mis ton script sur ma page index.php avant le code <HTML> ensuite j'ai essaye dans le <HEAD> mais ca ne fonctionne pas.
 
Je fais comment ? dsl ...

Reply

Marsh Posté le 29-10-2005 à 19:24:44    

shakpana a écrit :

la regexp dans un fichier inclut sur toutes les pages concernées, non ?
c'était en réponse à gernouille ...


 
Ah ok, bon bah oui un include sur toutes les pages il est vrai que c'est suffisant. Mais je me demandais si en concevant ses pages il n'aurait pas pensé à leur donner un header commun?
 
C'est ce que je fais tout le temps même si dans un premier temps c'est innutile on peut parfois se retrouver face à des situations qui le demande, dans son cas par exemple.


Message édité par dwogsi le 29-10-2005 à 19:25:09

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 29-10-2005 à 19:33:23    

?


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 29-10-2005 à 19:33:23   

Reply

Marsh Posté le 29-10-2005 à 19:35:56    

koji ouf a écrit :

Bon je suis trop noob je crois...
 
J'ai mis ton script sur ma page index.php avant le code <HTML> ensuite j'ai essaye dans le <HEAD> mais ca ne fonctionne pas.
 
Je fais comment ? dsl ...


ça ne fonctionne pas "comment" ?
 
quelques généralités :
- l'endroit importera en fonction de ce que tu veux en faire
- le script fonctionnera pour les navigateurs renseignant un HTTP_REFERER valide (une bonne partie)
- tu as évidement remplacé 'example.org' par le nom correct du site clone
- le script fonctionnera une seule fois, par visiteur, lors du click depuis le site clone vers ton site, et si c'est un lien direct
 
> gernouille
[:pingouino]

Reply

Marsh Posté le 29-10-2005 à 19:36:22    

Je vois que j'ai pas été assez clair ^^ Moi j'aimerais que depuis le site X on ne puisse pas charger la page d'accueil de mon site donc index.php.
 
Les autres de mes pages ce n'est plus un probleme vu que ce sont des pages HTML

Reply

Marsh Posté le 29-10-2005 à 19:41:11    

Oui j'ai mis l'adresse du site clone mais à ce propos : dois-je mettre le http://  ou non ?
 
Sinon j'ai essayé avec IE et Mozilla, ca n' a donc aucun effet quand je clique sur le lien "accueil" de la page clone qui mène directement à mon index.php


Message édité par koji ouf le 29-10-2005 à 19:41:33
Reply

Marsh Posté le 29-10-2005 à 19:43:38    

donc normallement le script correspond à ta demande, mais il doit y avoir une nuance quelque part ...
reste à trouver où.
 
>dois-je mettre le http://  ou non ?  
non, genre www.example.org tout court.


Message édité par shakpana le 29-10-2005 à 19:44:11
Reply

Marsh Posté le 29-10-2005 à 19:51:45    

En tout cas j'ai mis :
 

Code :
  1. <? 
  2. if(isset($_SERVER['HTTP_REFERER'])){
  3. $matches = array();
  4. if (preg_match('/^(http:\/\/)?([^\/]+)/i', $_SERVER['HTTP_REFERER'], $matches)){
  5. if ($matches[2] == 'www.example.orgl'){
  6. die('Warning !');
  7. }
  8. }
  9. }
  10. ?>


 
dans mon index.php en première lignes de celui-ci mais nada  :cry:


Message édité par koji ouf le 29-10-2005 à 19:55:27
Reply

Marsh Posté le 29-10-2005 à 20:20:02    

Bon, prends ce code légèrement modifié, fait des essais sans le referer pour voir d'ou vient l'erreur ...
je peux pas mieux te dire :/
 

Code :
  1. $referer = '';
  2. if(isset($_SERVER['HTTP_REFERER'])){
  3.   $referer = $_SERVER['HTTP_REFERER'];
  4. }
  5.  
  6. // amuses-toi avec cette ligne pour tester
  7. $referer = "http://example.org/truc/machin/test.html";
  8. $referer = "http://www.example.org/truc/machin/test.html";
  9. $referer = "http://www.example.org";
  10.  
  11. $matches = array();
  12. if (preg_match("/^(http:\/\/)?(www\.)?([^\/]+)/i", $referer, $matches)){
  13.   if ($matches[3] == 'example.org'){
  14.     die('Warning !');
  15.   }
  16. }

Reply

Marsh Posté le 29-10-2005 à 20:21:20    

Merci en tout cas ^^'  je vais tester ca !  ;)

Reply

Marsh Posté le 29-10-2005 à 20:37:15    

J'ai re-modifier la ligne
 

Code :
  1. if (preg_match("/^(http://)?(www.)?([^/]+)/i", $referer, $matches)){


 
en  

Code :
  1. if (preg_match('/^(http:\/\/)?(www.)?([^/]+)/i', $referer, $matches)){


 
mais ce coup ci ca donne : Unknown modifier ']'

Reply

Marsh Posté le 29-10-2005 à 20:42:56    

oui, excuses-moi, j'ai oublié cet saleté de bug d'antislashes voilà :
 
$referer = '';
if(isset($_SERVER['HTTP_REFERER'])){
  $referer = $_SERVER['HTTP_REFERER'];
}
   
// amuses-toi avec cette ligne pour tester
$referer = "http://example.org/truc/machin/test.html";
$referer = "http://www.example.org/truc/machin/test.html";
$referer = "http://www.example.org";
   
$matches = array();
if (preg_match("/^(http:\/\/)?(www\.)?([^\/]+)/i", $referer, $matches)){
  if ($matches[3] == 'example.org'){
    die('Warning !');
  }
}
 
EDIT : POST MODIFIÉ
ça devient relou ce bug du forum, c'est impossible de poster une regex
:o


Message édité par shakpana le 29-10-2005 à 20:54:54
Reply

Marsh Posté le 29-10-2005 à 20:48:43    

Cool ca marche... je vous remercie tous !  :jap:


Message édité par koji ouf le 29-10-2005 à 21:21:30
Reply

Marsh Posté le 29-10-2005 à 22:17:02    

Salut,
 
si tu veux bloquer tout son site et non certaines pages spécifiques tu peux utiliser strpos au lieu d'une regex ;-)
 
http://fr.php.net/manual/fr/function.strpos.php
 
en utilisant également le referer bien sûr :-)
 
a +

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed