Scripts php utilisant la technique des XMLHttpRequest pour envoyer des mails aux membres enregistrés dans une table de la base de données Mysql. Il est nécessaire de télécharger la class.phpmailer.php (voir le mode d'emploi dans l'archive fournie). On prend comme exemple les anciens élèves d'une école, enregistrés dans une table mysql en fonction de leur promo. Les tests ont été effectués sur un serveur mutualisé pro d'OVH mais seulement avec 20 envois. On compte sur vous pour tester avec un nombre d'envois plus important, il sera alors nécessaire d'adapter les scripts php à la structure de votre base de données.
Source / Exemple :
Les différents fichiers et le mode d'emploi sont dans l'archive zip
Conclusion :
Scripts php utilisant la technique XMLHttpRequest avec interprétation du code renvoyé par le serveur vers le client. Si présence de scripts Javascript alors ces scripts sont exécutés sur le poste du client. Normalement pas de timeout du serveur car on effectue les envois 1 par 1 !
20 août 2012 à 18:08
20 août 2012 à 13:41
Il suffit par exemple de cibler l'attaque sur un utilisateur qui aurait l'habitude de se connecter à la page sécurisée pour que l'attaque passe.
ex : si un utilisateur (qui est connecté à l'administration) visite un lien spécialement préparé pour lui, alors l'attaquant peut faire executer du Javascript à cet utilisateur (faille XSS) ou lui faire executer des requetes specifiques (faille d'injection sql).
C'est vraiment un bon reflexe que de ne jamais utiliser directement (pour l'affichage ou dans les requetes) une variable utilisateur, quelque soit son origine.
20 août 2012 à 10:19
Pour la remarque 1, on peut effectivement se passer du if (session_start()!= true){session_start();} car redonbant. Pour les remarques concernant la sécurité, on peut effectivement améliorer afin d'éviter des problèmes mais il ne faut pas perdre de vue que ces scripts sont à placer dans un répertoire sécurisé uniquement accessible par un utilisateur authentifié. Je vais tenir compte de ce commentaire pour une prochaine mise à jour de la source.
20 août 2012 à 09:28
Plusieurs petites remarques :
1) les tests sur le session_start()
if (session_start()!= true){session_start();}
Je pense que ce test est inutile car redondant.
Le premier "session_start" lance le démarrage de la session.
Si elle ne renvoie pas "true", c'est qu'il y a eu un problème et cela ne devrait servir à rien de relancer "session_start" une seconde fois.
2) sécurité à l'affichage des données reçues.
Il faut faire attention à ne jamais utiliser les variables utilisateurs (récupérées de la variable $_GET ou $_POST) directement dans l'affichage retournée à l'internaute.
Le minimum est d'utiliser "htmlspecialchars(...)" pour éviter une attaque (XSS) qui consisterait à passer du javascript par l'une de ces variables par exemple.
3) sécurité dans les requetes SQL des données reçues.
Il faut faire attention à ne jamais utiliser les variables utilisateurs (récupérées de la variable $_GET ou $_POST) directement dans les requetes SQL.
Le minimum est d'utiliser "mysql_real_escape_string(...)" pour éviter une attaque (SQL Injection) qui consisterait à passer du SQL par l'une de ces variables par exemple, et qui se retrouverait directement interprété par le moteur SQL.
Bonne continuation.
EM.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.