bonjour,
j'ai créé cette petite page "test.php" sur "monsite.com" pour tester la fonction "mail()" en PHP
quand je me connecte à "monsite.com/test.php", la fonction fonctionne, je reçois bien le message sur la boite de "destinataire@gmail.com"
depuis la création de cette page hébergé chez OVH, je reçois deux ou trois fois par jour ce même message sur la boite de "destinataire@gmail.com" alors que personne ne se connecte à "monsite.com/test.php"
pourquoi ??
merci


<!DOCTYPE html> 
<html lang="fr"> 

<head> 
	<meta charset="UTF-8"> 
</head>

<body>

TEST


<?php
	$nom = 'Mon Nom'; 
	$expediteur = 'monnom@gmail.com'; 
	$objet = 'Mon Objet'; 
	$message = 'Mon message'; 
	
	/* Destinataire (votre adresse e-mail) */
	$to = 'destinataire@gmail.com';
	
	/* Construction du message */
	$msg  = 'Bonjour,'."\r\n\r\n";
	$msg .= 'Ce mail a été envoyé depuis monsite.com par '.$nom."\r\n\r\n";
	$msg .= 'Voici le message qui vous est adressé :'."\r\n\r\n";
	$msg .= '***************************'."\r\n\r\n";
	$msg .= $message."\r\n\r\n";
	$msg .= '***************************'."\r\n";
 
	/* En-têtes de l'e-mail */
	$headers = "Content-type: text/plain; charset=utf-8\r\n";
	$headers .= 'From: '.$nom.' <'.$expediteur.'>'."\r\n\r\n";
 
	/* Envoi de l'e-mail */
	mail ($to, $objet, $msg, $headers);
?>


</body>

Modifié par AlaiM (07 Nov 2024 - 00:20)
Bonsoir,
>> alors que personne ne se connecte à "monsite.com/test.php"
Comment sais tu que personne n'effectue aucune requête sur cette URL???
Cela peut être un humain comme un robot. En tout cas si tu reçois un mail c'est que le script c'est exécuté.
parce que j'ai mis un "traceur" dans un iframe à la fin de la page "test.php"
voir ci dessous le code


<!DOCTYPE html> 
<html lang="fr"> 

<head> 
	<meta charset="UTF-8"> 
</head>

<body>

TEST


<?php
	$nom = 'Mon Nom'; 
	$expediteur = 'monnom@gmail.com'; 
	$objet = 'Mon Objet'; 
	$message = 'Mon message'; 
	
	/* Destinataire (votre adresse e-mail) */
	$to = 'destinataire@gmail.com';
	
	/* Construction du message */
	$msg  = 'Bonjour,'."\r\n\r\n";
	$msg .= 'Ce mail a été envoyé depuis monsite.com par '.$nom."\r\n\r\n";
	$msg .= 'Voici le message qui vous est adressé :'."\r\n\r\n";
	$msg .= '***************************'."\r\n\r\n";
	$msg .= $message."\r\n\r\n";
	$msg .= '***************************'."\r\n";
 
	/* En-têtes de l'e-mail */
	$headers = "Content-type: text/plain; charset=utf-8\r\n";
	$headers .= 'From: '.$nom.' <'.$expediteur.'>'."\r\n\r\n";
 
	/* Envoi de l'e-mail */
	mail ($to, $objet, $msg, $headers);

?>


<iframe src='trace.php?page=test' width="0" height="0"></iframe>
	
</body>

ci dessous le code de la page "trace.php" qui me permet d'enregistrer dans un fichier CSV les caractéristiques des requêtes sur l'URL


<?php 
	$pays='';
	$ville='';
	$page='';
	
	$page=$_GET['page'];
	
	$ip = $_SERVER['REMOTE_ADDR'];// Recuperation de l'IP du visiteur
	
	$query = @unserialize(file_get_contents('http://ip-api.com/php/'.$ip));  //connection au serveur de ip-api.com et recuperation des données
	if($query && $query['status'] == 'success') {
		$pays=$query['country'];
		$ville= $query['city'];
	}
	
	$file ="journal.csv";
	$fileopen=(fopen("$file",'a'));
	fwrite($fileopen,"[" . $ip . "];" . date("d/m/Y H:i").";".$query['country'] . ";" . $query['city'].";".$page. ";".$_SERVER['HTTP_USER_AGENT']."\n");
	fclose($fileopen);
?>
	


d'autre part je ne vois pas comment un humain ou un robot peut faire une requête sur cette URL car elle n'est pas référencée, aucun lien ne pointe sur cette URL

merci de ta réponse
Modifié par AlaiM (07 Nov 2024 - 02:12)
P.S.
j'ai mis ce traceur ( iframe ) sur toutes les pages de monsite.com pour avoir des statistiques sur les connexions à mon site
Modérateur
AlaiM a écrit :
parce que j'ai mis un "traceur" dans un iframe à la fin de la page "test.php"
....
d'autre part je ne vois pas comment un humain ou un robot peut faire une requête sur cette URL car elle n'est pas référencée, aucun lien ne pointe sur cette URL


Bonjour,
Il y a des robots qui scannent en permanence le web à la recherche de page qui pourrait potentiellement avoir des failles de sécurités.
Cela peut-être des URI spécifique à certains CMS et leurs plugins ou de simple script.
La probabilité qu'une page "test.php" ai été oublié quelque par est loin d'être nulle.

Si tu as accès aux log de ton site, jette y un œil Smiley smile

Cordialement
Modifié par gcyrillus (07 Nov 2024 - 12:37)
bonjour, merci de ta réponse.
j'ai effectivement accès aux logs bruts chez OVH,mais ceux ci sont pratiquement illisibles vu la taille du résultat obtenu pour une journée.
c'est pour ça que j'ai créé mon "traceur" qui me permet d'enregistrer dans un fichier "journal.csv" l'adresse IP, la date, le pays, la ville, la page et le HTTP-USER-AGENT pour chaque requête sur une page de mon site.
je n'ai donc pas de trace de connexion à la date et heure de transmission du mail.
Bonjour,

Si je bloque le chargement des iframes dans mon navigateur et que je charge ton url test.php, ton script va envoyer le mail mais l'url trace.php ne sera jamais appelée.
Un bot pourra bien sûr faire la même chose (le chargement de l'iframe se fait coté client et non coté serveur).

Pour être sur que ton script trace.php soit exécuté lors de l'exécution de test.php, tu devrais plutôt inclure le premier dans le second.
fichier test.php :
// [...]
mail ($to, $objet, $msg, $headers);

require 'trace.php'; // chemin du script à vérifier


Si le script d'envoi de mail est destiné à être utilisé via un formulaire html publique (formulaire de contact par exemple), tu pourrais aussi ajouter une protection via un token CSRF.
Modifié par Pitet (08 Nov 2024 - 10:17)
bonsoir et merci
avec "require" ça fonctionne, j'ai pu voir qu'un navigateur (robot ?) basé au Canada a fait plusieurs requête sur "monsite.com/test.php".
mais ça ne m'explique pas comment un robot peut faire une requête sur
"monsite.com/test.php"
car aucun lien ne pointe vers cet URL ?
Modérateur
Bonjour,

AlaiM a écrit :
mais ça ne m'explique pas comment un robot peut faire une requête sur
"monsite.com/test.php" car aucun lien ne pointe vers cet URL ?

Il y a (malheureusement ?) des tas d'endroits assez improbables où les pages de ton site peuvent être référencées.

Par exemple, s'il y a des statistiques de fréquentation de ton site visibles quelque part, un bot pourra voir les url des pages de ton site que tu as toi-même visitées auparavant.

J'ai pris l'exemple des statistiques de fréquentation, mais ça pourrait être autre chose aussi.

Amicalement,
Bonsoir,

Pour enfoncer le clou par rapport à ce que dit parsimonhi, il y a des robots qui essayent au petit bonheur la chance. Sur les millions de sites qu'ils scannent, ils tombent forcément sur 2 ou 3 trucs intéressants.
ET puis sinon, si tu utilises Chrome ou Edge, ça pourrait être le navigateur lui-même qui demande à Google et/ou Microsoft de référencer l'URL, ou bien une extension instalée.

Pars du principe que, à partir du moment où c'est sur Internet, n'importe qui peut y accéder n'importe quand.
Modifié par QuentinC (11 Nov 2024 - 19:44)