Sign in to follow this  
Followers 0

Formulaire sécurisé

13 posts in this topic

Posted · Report post

Bonjour,

Depuis plusieurs semaines mon site est spammé de fausses commandes, dont certaines commandes sont validées par le serveur de la banque crédit agricole (probablement des cartes volées au Maroc). Après informations auprès de mon hébergeur (Amen) le problème viendrait de mon formulaire de commande qui ne serait pas sécurisé (Peel 2.9). Si quelqu'un à déjà eu le problème et trouvé la solution je suis preneur

Merci à tous ceux qui pourront m'apporter une aide.

Cordialement.

Share this post


: post
Share on other sites

Posted · Report post

Bonjour,

Depuis plusieurs semaines mon site est spammé de fausses commandes, dont certaines commandes sont validées par le serveur de la banque crédit agricole (probablement des cartes volées au Maroc). Après informations auprès de mon hébergeur (Amen) le problème viendrait de mon formulaire de commande qui ne serait pas sécurisé (Peel 2.9). Si quelqu'un à déjà eu le problème et trouvé la solution je suis preneur

Merci à tous ceux qui pourront m'apporter une aide.

Cordialement.

est ce que tu peux donner l'adresse de ton site éventuellement ?

ou juste le code ( en supprimant les infos sensibles bien sur ) de ton formulaire ?

Share this post


: post
Share on other sites

Posted · Report post

est ce que tu peux donner l'adresse de ton site éventuellement ?

ou juste le code ( en supprimant les infos sensibles bien sur ) de ton formulaire ?

Merci de votre réponse.

Voila

<form name="entryform" action="<?=$_SERVER['PHP_SELF']?>" method="post">

<font class=titre>Etape 1. Vos informations personnelles</font><br>

<font class=petit>(nécessaires pour prendre contact avec vous)</font>

<table cellpadding="2" cellspacing="0" width="100%" border="0">

<tr>

<td colspan="3" class="normal"><b>Adresse de facturation :</b></td>

</tr>

<tr>

<td width=25 class=normal class=normal nowrap><? if (isset($erreurs['client1'])) { echo $fleche_droite;} ?></td>

<td class=normal>Client :</td>

<td><input class="formulaire1" type="text" name="client1" size=50 value="<?=stripslashes($client1) ?>"></td>

</tr>

<tr>

<td width=25 class=normal nowrap><? if (isset($erreurs['email1'])) echo $fleche_droite; ?></td>

<td class=normal>Email :</td>

<td><input class="formulaire1" type="text" name="email1" size=50 value="<?=$email1 ?>"></td>

</tr>

<tr>

<td width=25 class=normal nowrap><? if (isset($erreurs['contact1'])) echo $fleche_droite; ?></td>

<td class=normal>Tel. :</td>

<td><input class="formulaire1" type="text" name="contact1" size=50 value="<?=$contact1 ?>"></td>

</tr>

<tr valign=top>

<td width=25 class=normal nowrap><? if (isset($erreurs['adresse1'])) echo $fleche_droite; ?></td>

<td class=normal>Adresse :</td>

<td><input class="formulaire1" type="text" name="adresse1" size=50 value="<?=stripslashes($adresse1)?>"></td>

</tr>

<tr valign=top>

<td width=25 class=normal nowrap><? if (isset($erreurs['code_postal1'])) echo $fleche_droite; ?></td>

<td class=normal>Code Postal :</td>

<td><input class="formulaire1" type="text" name="code_postal1" size=50 value="<?=$code_postal1 ?>"></td>

</tr>

<tr valign=top>

<td width=25 class=normal nowrap><? if (isset($erreurs['ville1'])) echo $fleche_droite; ?></td>

<td class=normal>Ville :</td>

<td><input class="formulaire1" type="text" name="ville1" size=50 value="<?=stripslashes($ville1)?>"></td>

</tr>

<tr valign=top>

<td width=25 class=normal nowrap><? if (isset($erreurs['pays1'])) echo $fleche_droite; ?></td>

<td class=normal>Pays :</td>

<td><input class="formulaire1" type="text" name="pays1" size=50 value="<?=stripslashes($pays1) ?>"></td>

</tr>

<tr>

<td colspan="3" class="normal"><b>Adresse de livraison :</b>

<br>(A modifier si l'adresse de facturation est différente de l'adresse de livraison)</td>

</tr>

<tr>

<td width=25 class=normal class=normal nowrap><? if (isset($erreurs['client2'])) echo $fleche_droite; ?></td>

<td class=normal>Client :</td>

<td><input class="formulaire1" type="text" name="client2" size=50 value="<?=stripslashes($client2) ?>"></td>

</tr>

<tr>

<td width=25 class=normal nowrap></td>

<td class=normal>Email :</td>

<td><input class="formulaire1" type="text" name="email2" size=50 value="<?=$email2 ?>"></td>

</tr>

<tr>

<td width=25 class=normal nowrap><? if (isset($erreurs['contact2'])) echo $fleche_droite; ?></td>

<td class=normal>Tel. :</td>

<td><input class="formulaire1" type="text" name="contact2" size=50 value="<?=$contact2 ?>"></td>

</tr>

<tr valign=top>

<td width=25 class=normal nowrap><? if (isset($erreurs['adresse2'])) echo $fleche_droite; ?></td>

<td class=normal>Adresse :</td>

<td><input class="formulaire1" type="text" name="adresse2" size=50 value="<?=stripslashes($adresse2)?>"></td>

</tr>

<tr valign=top>

<td width=25 class=normal nowrap><? if (isset($erreurs['code_postal2'])) echo $fleche_droite; ?></td>

<td class=normal>Code Postal :</td>

<td><input class="formulaire1" type="text" name="code_postal2" size=50 value="<?=$code_postal2 ?>"></td>

</tr>

<tr valign=top>

<td width=25 class=normal nowrap><? if (isset($erreurs['ville2'])) echo $fleche_droite; ?></td>

<td class=normal>Ville :</td>

<td><input class="formulaire1" type="text" name="ville2" size=50 value="<?=stripslashes($ville2)?>"></td>

</tr>

<tr valign=top>

<td width=25 class=normal nowrap><? if (isset($erreurs['pays2'])) echo $fleche_droite; ?></td>

<td class=normal>Pays :</td>

<td><input class="formulaire1" type="text" name="pays2" size=50 value="<?=stripslashes($pays2) ?>"></td>

</tr>

<tr valign=top>

<td width=25 class=normal nowrap><? if (isset($erreurs['paiement'])) echo $fleche_droite; ?></td>

<td class=normal>Paiement* :</td>

<td class="normal">

<input type="radio" name="paiement" value="chèque" <?php if( $paiement == "chèque") {echo "checked";} ?>>Chèque<br>

<input type="radio" name="paiement" value="cb" <?php if($frm["paiement"]=="cb") echo "checked" ?>><font color="#990000">Carte Bancaire<br>

</td>

</tr>

<tr>

<td width=25 class=normal nowrap></td>

<td colspan=2 class="normal">Vos commentaires : </td>

</tr>

<tr>

<td colspan=2 nowrap>&nbsp;</td>

<td colspan=2><textarea class="formulaire1" name="commentaires" cols="50" rows="5"><?=$commentaires ?></textarea></td>

</tr>

<tr>

<td colspan=3 align=center><br><input type="submit" value="Etape suivante" class="bouton"></td>

</tr>

<tr>

<td colspan=3 align=left class=petit>(*) Ne pas oublier d'indiquer votre moyen de paiement</td>

</tr>

</table>

<blockquote>

</form>

Share this post


: post
Share on other sites

Posted · Report post

re

dans un premier temps

remplace toutes les occurences de

<?

les<?= sont des raccourcis de <?php print ..... ?> et peuvent être laissés.

par <?php

ensuite

action=<?=$_SERVER['PHP_SELF]?>"

par

action="<?php echo htmlentities($_SERVER['PHP_SELF'])?>"

Pour ce qui est du spam, il faudrait integrer un controle anti-spam via un script anti-spam mais c'est un peu trop compliqué pour t'en donner un exemple ici sur le forum. Si ton formulaire est spammé, il faut revoir tout le traitement de tes variables et agir en conséquence. je pense qu'il faudrait agir dès l'inscription et/ou changer toutes les variables par défaut comme ça si c'est un traitement automatisé au moins tu limiteras les dégats.

Share this post


: post
Share on other sites

Posted · Report post

Bonsoir Alexis,

A quoi te sert de mettre cela

action="<?php htmlentities($_SERVER['PHP_SELF'])?>"

cela ne changera pas grand chose sachant que cela s'execute sur le serveur;

je suis persuadé que cela se porte surtout sur les transmissions de variable, c'est à dire vérifier par exemple que la page est bien traitée dans un navigateur.

Je vous invite tous à regarder l'onglet développement dans la page d'accueil de peel.fr

et si M.Pruault veux bien nous aider à securiser tout ca...

car de la sécurité de ce script dépend son essor.

Share this post


: post
Share on other sites

Posted · Report post

Merci

Pourriez-vous me donner plus de précisions, ou faut-il mettre le script "Comment sécuriser vos formulaires contre les SPAMS." au début du formulaire ? ou sur la page index.

merci d'avance de votre réponse.

Cordialement

Share this post


: post
Share on other sites

Posted · Report post

Bonsoir Alexis,

A quoi te sert de mettre cela

action="<?php htmlentities($_SERVER['PHP_SELF'])?>"

Je ne donnerais pas les détails de l'exploit ici sur ces pages mais sur les formulaires aini codés il est possible d'injecter un code arbitraire en falsifiant cette variable dans laquelle ont peut donc injecter des instructions qui vont detourner le formulaire de son usage. Le htmlentities empeche cela. il s'agit non pas d'une faille mais d'une conséquence de la nature meme de cette variable $_SERVER ['PHP_SELF'].

Merci

Pourriez-vous me donner plus de précisions, ou faut-il mettre le script "Comment sécuriser vos formulaires contre les SPAMS." au début du formulaire ? ou sur la page index.

merci d'avance de votre réponse.

Cordialement

Le problème d'un formulaire déja spammé et reperé par les spammeurs c'est qu' il faut en decortiquer la moindre étape pour savoir comment bloquer les indésirables. Si tu integres une formule anti-spam mais que la verification est " sommaire " ça n'empechera aucun spam surtout si la technique anti-spam est connue.

Moi je procéde toujours ou presque toujours ainsi :

soit un champs caché qui transmet une variable aléatoire définie par session soit une case à cocher ou a decocher pour rendre valide le formulaire soit demander au visiteur de répondre à une question de math du genre " combien font 98 additionné à 102 ? ". Il existe plusieurs technique anti-spams mais pourrais tu donner un exemple plus précis de ce que tu appelle " fausse commande qui est validée " parce que si c'est à base de carte bleues volées etc aucune technique anti-spam ne pourra te preserver d'une " vrai-fausse soumission " de ton formulaire. Et donc dans ton cas une solution serait l'anti-flood de commande. Quel est le volume de fausse commande ?

peux tu donner une url ?

Share this post


: post
Share on other sites

Posted · Report post

oui, une fonction de blocage d'ip peux le faire aussi si on repere un client "bizarre"

Share this post


: post
Share on other sites

Posted · Report post

Bonjour,

La procédure du spammeur est : de s'identifier sous un nom bizarre ensuite toute une flopée de commande de 100 à 50 dont 50 % validées en banque. Je ne sais pas de quelle façon il procède pour expédier toutes les commandes, robots ou autres. l'url : http://www.la-dragee.com.

Encore merci pour vos solutions qui sont toutes très pertinentes.

Cordialement.

Share this post


: post
Share on other sites

Posted · Report post

ok.

Pour que je sois sur de comprendre :

1 les spammeurs s'enregistrent sur ta boutique

2 Ils passent des commandes " bizaroides " avec de fausses cartes ou des cartes volées.

3 certaines commandes sont validées par la banque mais pas toutes c'est ça ?

Questions :

1 Quelle proportions représentent les spammeurs ?

2 qu'adviens t'il des commandes reconnues valides ?

***********************************************************

Je pense que ton problème, dans un premier temps en tout cas ne peut être résolu que par :

- l'inscription et la confirmation obligatoire par email des clients.

- la confirmation par toi meme des comptes clients

- l'enregistrement du host et de l'ip pour chaque client et effectuer les verifs nécessaires pour tracer les ip des commandes et des clients bizaroides.

- limiter le nombre de commande par heure ou autre critere en fonction de l'IP.

parce que integrer une procédure anti-spam c'est cool mais si ce sont des visiteurs " humains " qui creent eux meme les comptes, cela ne servira à rien.

Share this post


: post
Share on other sites

Posted · Report post

Bonjour,

J'ai visité ton site et à 2 reprises en voulant revenir sur la page d'accueil, j'ai eu cette erreur

//////////////////////////////////////////////////////////////

Fatal error: session_start(): Failed to initialize storage module: user (path: /tmp) in /home/sites/site158/web/configuration.inc.php on line 55

//////////////////////////////////////////////////////////////

Je te le donnes pour info.

Share this post


: post
Share on other sites

Posted · Report post

Bonjour,

J'ai visité ton site et à 2 reprises en voulant revenir sur la page d'accueil, j'ai eu cette erreur

//////////////////////////////////////////////////////////////

Fatal error: session_start(): Failed to initialize storage module: user (path: /tmp) in /home/sites/site158/web/configuration.inc.php on line 55

//////////////////////////////////////////////////////////////

Je te le donnes pour info.

Je dirais 1 spammeur, aujourd'hui pas de spam facture je pense du aux événements dans un cyber café au Maroc. Quant aux commandes validées par la banque, pour qu'elles soient encaissées je dois moi aussi les valider, de se coté pas de problème.

J'enregistre toutes les infos et l'ip pour chaque client avec un script PG-AgentSecret, il me reste a trouver une solution pour valider une inscription sur le site, j'ai essayé d'installer un script générateur de cryptogrammes "captchas" impossible de le faire fonctionner chez Amen.

Cordialement

Share this post


: post
Share on other sites

Posted · Report post

En fait le code anti-spam ne te protegeras que des inscriptions automatiques et/ou des inscriptions faites par des humains trop fainéants pour passer la barriere du spam. La meilleure protection que tu pourrais avoir c'est de bloquer une adresse IP. par exemple tu peux bloquer le cyber café en question directement depuis un fichier htaccess. Mais avec Amen comme hebergeur je sais pas si tout est possible.

La je suis un peu au taquet mais essaie le code suivant ( à mettre par exemple tout en haut de haut.php ou dans configuration.inc.php

if($_SERVER['remote_addr'] == 'adresse IP du cybercafé'] 

	die("IP bannie !!!" );
pour le htaccess c'est un peu plus simple tu rajoute simplement cette ligne a ton htaccess existant ou dans un fichier htaccess que tu cree toi meme :
deny from ip du cyber café

Share this post


: post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0

Twitter Advisto ecommerce

Facebook PEEL Shopping