nono
samedi 13 mai 2006 à 10:08
Ok ok... tu me fais peur avec tout ça... Je vais être un peu plus précis.
Les seuls endroits où l'on peut entrer un script, c'est dans le formulaire de recherche ou dans les champs pour soumettre un site. Comme je vérifie toutes les entrées quand quelqu'un soumet un site, il m'est possible de voir si un champ comporte un script.
Est-il possible que quelqu'un puisse entrer un script et que je ne puisse pas le voir dans le panneau d'administration ?
Autre question, le htmlspecialchars() pour la recherche concernait les mots clés à mettre en gras dans le listing des résultats. Si quelqu'un entre un script dans le formulaire de recherche, normalement, ça ne fait rien non ? (dites-moi si je me trompe).
Sinon, pour soumettre un site, il y a des fonctions de vérifications de ce type (avec un des pb htmlspecialchars) :
CODE
function email_valide($email,$inc = false)
//verifie la validite d'une adresse email : syntaxe + non vide
{
$message = "<br />";
if (empty($email))
{
$message .= "Le champ adresse email ne peut être vide !\n<br />\n";
$email_ok = false;
}
else //l'email a ete entree, on la verifie
{
//verification de la syntaxe
$email_ok = eregi("^[_\.0-9a-z-]+@([0-9a-z-]+\.)+[a-z]{2,4}$",$email);
//verification du domaine
if(TEST_MAIL)
//on doit se connecter pour verifier l'existance du domaine
{
list($user, $domaine) = split("@", $email, 2);
$domain_ok = _AT_checkdnsrr($domaine, "MX");
}
else
//si on travaille en local, on ne se connecte pas pour verifier le domaine
{ $domain_ok = true; }
}
if (!$email_ok || !$domain_ok)
{
$message .= "L'adresse email \"$email\" n'est pas valide !\n<br />\n";
$message .= "<br /><br />\n";
$message .= "<a href=\"java script:history.go(-1);\">Retour au formulaire</a>\n";
echo htmlspecialchars($message);
if ($inc) //si on peut faire die() (-> admin)
include("after.php");
exit;
}
return true;
}
C'est bien joli tout ça, mais le htmlspecialchars() à la fin fait afficher tout le code html avec les balises... dans le cas où l'adresse n'est pas entrée ou est fausse.
Dans ces cas-là, j'ai tout simplement enlevé les htmlspecialschars et j'ai laissé "echo $message; Voilà pour les précisions. Merci de me dire si c'est ok ou pas.
PS : TheRec, vive la suisse ^_^