Sécurisation du formulaire Contact

17 messages dans ce sujet

Posté(e) · Signaler ce message

1) Télécharger le script http://www.cryptographp.com/ actuellement version 1.4 est copier le dossier crypt à la racine de votre site.

2) Editer la page utilisateurs/contact.php (peel version 3.x)

3)

Après la ligne : include ("../configuration.inc.php");

inserez : $cryptinstall="../crypt/cryptographp.fct.php";

include $cryptinstall;

4) Au niveau du formulaire inserez :

<tr><td colspan=2 align=center>S&eacute;curit&eacute; anti Spam :<br /> <?php dsp_crypt(0,1); ?></td></tr>

<tr><td colspan=2>Recopier le code:<input type="text" name="code"><? if (isset($erreurs['captcha'])) echo $marqueur_erreur." ".$message_erreur['captcha'] ?></td></tr>

5) Dans la fonction : function valide_form(&$frm, &$erreurs) inserez :

if (chk_crypt($_POST['code'])) {

}else{

$erreurs['captcha'] = true;

$msg['captcha'] = "Code de vérification incorrect";

}

Voila votre formulaire est sécurisé.

Pascal - 3DVF

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Merci beaucoup.

Pour info, on peut faire de même pour les formulaires d'inscription et de commandes.

Un script que beaucoup attendaient.

Willy

PS: a intégrer je pense dans les prochaines versions de PEEL :)

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

9a vas me valoir une remise sur la prochaine MAJ peel ^^

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

En tout cas ce sujet a déja 5 étoiles :)

J'en ais parlé a Mr Ruault, a mon avis ca va être repris pour de futures versions.

Simple et efficace !

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

1) Télécharger le script http://www.cryptographp.com/ actuellement version 1.4 est copier le dossier crypt à la racine de votre site.

2) Editer la page utilisateurs/contact.php (peel version 3.x)

3)

Après la ligne : include ("../configuration.inc.php");

inserez : $cryptinstall="../crypt/cryptographp.fct.php";

include $cryptinstall;

4) Au niveau du formulaire inserez :

<tr><td colspan=2 align=center>S&eacute;curit&eacute; anti Spam :<br /> <?php dsp_crypt(0,1); ?></td></tr>

<tr><td colspan=2>Recopier le code:<input type="text" name="code"><? if (isset($erreurs['captcha'])) echo $marqueur_erreur." ".$message_erreur['captcha'] ?></td></tr>

5) Dans la fonction : function valide_form(&$frm, &$erreurs) inserez :

if (chk_crypt($_POST['code'])) {

}else{

$erreurs['captcha'] = true;

$msg['captcha'] = "Code de vérification incorrect";

}

Voila votre formulaire est sécurisé.

Pascal - 3DVF

Bonjour,

Pouvez-vous me dire ou ce trouve le fichier contact (est-ce celui de la racine boutique ou dans le fichier administrer ?)

De plus, je ne trouve pas le fichier formulaire.

Merci de votre aide.

Cordialement,

Balam

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

C'est dans "utilisateurs/contact.php".

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Oui Cryptographp est l'un des captchas les plus connus. Mais a ce jour AUCUN cas de robot casseur n'a été annoncé. Par ailleurs, la configuration personnalisable du script rend impossible a un robot de contourner la protection. Chaque installation est unique, chaque configuration peut rendre la tache différente.

Maintenant le risque n'est pas (plus) vraiment celui des robots,mais celui des entreprises qui font travailler des ouvriers de pays a bas revenus pour spammer les sites... A cela aucun captcha ne résiste, bien évidemment.

Sylvain

www.cryptographp.com

[mode ayatollah du code XHTML]

Petit bemol :

la classe cryptograph est de plus en plus connue.

Résultat : les robots anti-spam commencent à savoir comment décoder l'image et renvoyer un etat " ok " quelle que soit l'image generée. je ne dis pas que la solution ici présentée est nulle, loin de là ! Mais au dela du fait qu'elle ne garantira pas à 100% une protection durable contre les spammeurs, elle est de plus inaccessible ( mais ce point là n'est pas le plus important :D :D ).

Lorsque sera dispo la version Full CSS de Peel, il faudra esperer que son accessibilité sera meilleure qu'actuellement et inclure à ce moment un test de turing basé sur des questions réponses en texte ainsi les robots sont tenus à l'écart et l'accessibilité preservée !

[/mode ayatollah du code XHTML]

:) :P

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

C'est dans "utilisateurs/contact.php".

Willy

Merci Willy,

Je fais des tests mais j'ai des erreurs à chaque fois dans l'inclusion des lignes de codes.

Pouvez-vous me le faire via ce fichier ci-dessous ?

Si oui, merci si non merci aussi ;_))

<?

include ("../configuration.inc.php");

/* Le formulaire e &eacute;t&eacute; soumis, essaye de cr&eacute;er un nouveau compte d'utilisateur */

if (sizeof($_POST) > 0) {

$frm = $_POST;

$message_erreur = valide_form($frm, $erreurs);

if (empty($message_erreur)) {

insere_utilisateur($frm);

$DOC_TITLE = "[PEEL.FR]";

include($repertoire_modele."/haut.php");

afficher_enregistrement_succes();

include($repertoire_modele."/bas.php");

die;

}

}

$DOC_TITLE = "[PEEL.FR]";

include($repertoire_modele."/haut.php");

if (!empty($message_erreur)) {

echo "<font class='normal' style='color: #ff0000'>".MSG_ERR_FORM."</font>";

}

if (!empty($noticemsg)) {

echo "<div class=notice>";

echo $noticemsg;

echo "</div>";

}

affiche_formulaire_enregistrement();

include($repertoire_modele."/bas.php");

/******************************************************************************

* FONCTIONS

*****************************************************************************/

function valide_form(&$frm, &$erreurs) {

/* Valide le formulaire d'inscription et renvoie &eacute;ventuellement un message d'erreur */

$erreurs = array();

$msg = array();

if (empty($frm['nom'])) {

$erreurs['nom'] = true;

$msg['nom'] = stripslashes(MSG_ERR_NAME);

}

if (empty($frm['email'])) {

$erreurs['email'] = true;

$msg['email'] = stripslashes(MSG_ERR_EMAIL);

}

elseif (!preg_match('`^[[:alnum:]]([-_.]?[[:alnum:]])*@[[:alnum:]]([-_.]?[[:alnum:]])*.([a-z]{2,4})$`',$frm['email'])) {

$erreurs['email'] = true;

$msg['email'] = stripslashes(ERR_EMAIL_BAD);

}

if (empty($frm['telephone'])) {

$erreurs['telephone'] = true;

$msg['telephone'] = stripslashes(MSG_ERR_TEL);

}

return $msg;

}

function insere_utilisateur(&$frm) {

global $support;

global $site;

$sql = "

INSERT INTO peel_tickets (

email

, nom

, telephone

, texte

, dispo

, datetime

) VALUES (

'$frm'

,'".htmlspecialchars($frm['nom'],ENT_QUOTES)."'

,'$frm[telephone]'

,'".htmlspecialchars($frm['texte'],ENT_QUOTES)."'

,'".htmlspecialchars($frm['dispo'],ENT_QUOTES)."'

,now()

)";

/* Ajoute le nouvel utilisateur &agrave; la base */

$qid = mysql_query($sql);

$ticket_id = mysql_insert_id();

$message = "Détail du message envoyé le ".date("d-m-Y H:i:s");

$message .= "Tel : ".$frm['telephone']."\n\n";

$message .= "Email : ".$frm['email']."\n\n";

$message .= "Disponibilité : ".$frm['dispo']."\n\n";

$message .= "Message :\n\r\n\r ".stripslashes($frm['texte'])."\n\n";

mail($support,"[$site] prise de contact numéro $ticket_id",$message,"FROM: $frm");

}

function affiche_formulaire_enregistrement() {

GLOBAL $frm, $erreurs, $message_erreur, $wwwroot, $site;

$marqueur_erreur = "<font color=RED>".htmlspecialchars("<=")."</font>";

?>

<div class="entete"><?echo CONSEIL; ?></div>

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

<table cellpadding="5" cellspacing=0 border="0" >

<tr>

<td class="normal"><?echo strtoupper(EMAIL); ?> <span class="etoile">(*)</span> :</td>

<td class="normal"><input class="formulaire1" type="text" name="email" size="50" value="<?=stripslashes(vb($frm['email']))?>">

<? if (isset($erreurs['email'])) echo $marqueur_erreur." ".$message_erreur['email'] ?>

</td>

</tr>

<tr>

<td class="normal"><?echo strtoupper(NAME); ?> <span class="etoile">(*)</span> :</td>

<td class="normal"><input class="formulaire1" type="text" name="nom" size="50" value="<?=stripslashes(vb($frm['nom'])) ?>">

<? if (isset($erreurs['nom'])) echo $marqueur_erreur." ".$message_erreur['nom'] ?>

</td>

</tr>

<tr>

<td class="normal"><?echo TELEPHONE; ?> <span class="etoile">(*)</span> :</td>

<td class="normal"><input class="formulaire1" type="text" name="telephone" size="50" value="<?=vb($frm['telephone']) ?>">

<? if (isset($erreurs['telephone'])) echo $marqueur_erreur." ".$message_erreur['telephone'] ?>

</td>

</tr>

</tr>

<tr valign=top>

<td class="normal"><?echo TEXTE; ?> :</td>

<td class="normal">

<textarea class="formulaire1" name="texte" cols="36" rows="10"><?=stripslashes(vb($frm['texte'])) ?></textarea>

</td>

</tr>

<tr valign=top>

<td class="normal"><?echo DISPO; ?> :</td>

<td class="normal">

<select name="dispo" class="formulaire1">

<option value="A.M">Matin</option>

<option value="P.M">Apr&egrave;s-midi</option>

</select>

</td>

</tr>

</td>

</tr>

<tr>

<td colspan="2" align="center">

<input type="submit" value="<?echo SEND; ?>" class="bouton"><p></p></td>

</tr>

<tr><td colspan=2 align=center class=petit>

<p><?echo nl2br(CNIL); ?></p>

</td></tr>

</table>

</form> <?

};

function afficher_enregistrement_succes() {

GLOBAL $wwwroot;

?>

<font class="titre"><?echo HELLO; ?></font>

<p class="normal">

<?echo nl2br(stripslashes(MSG_TICKET_OK));?>

</p>

<?

}

?>

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Merci Willy,

Je fais des tests mais j'ai des erreurs à chaque fois dans l'inclusion des lignes de codes.

Pouvez-vous me le faire via ce fichier ci-dessous ?

Si oui, merci si non merci aussi ;_))

<?

include ("../configuration.inc.php");

/* Le formulaire e &eacute;t&eacute; soumis, essaye de cr&eacute;er un nouveau compte d'utilisateur */

if (sizeof($_POST) > 0) {

$frm = $_POST;

$message_erreur = valide_form($frm, $erreurs);

if (empty($message_erreur)) {

insere_utilisateur($frm);

$DOC_TITLE = "[PEEL.FR]";

include($repertoire_modele."/haut.php");

afficher_enregistrement_succes();

include($repertoire_modele."/bas.php");

die;

}

}

$DOC_TITLE = "[PEEL.FR]";

include($repertoire_modele."/haut.php");

if (!empty($message_erreur)) {

echo "<font class='normal' style='color: #ff0000'>".MSG_ERR_FORM."</font>";

}

if (!empty($noticemsg)) {

echo "<div class=notice>";

echo $noticemsg;

echo "</div>";

}

affiche_formulaire_enregistrement();

include($repertoire_modele."/bas.php");

/******************************************************************************

* FONCTIONS

*****************************************************************************/

function valide_form(&$frm, &$erreurs) {

/* Valide le formulaire d'inscription et renvoie &eacute;ventuellement un message d'erreur */

$erreurs = array();

$msg = array();

if (empty($frm['nom'])) {

$erreurs['nom'] = true;

$msg['nom'] = stripslashes(MSG_ERR_NAME);

}

if (empty($frm['email'])) {

$erreurs['email'] = true;

$msg['email'] = stripslashes(MSG_ERR_EMAIL);

}

elseif (!preg_match('`^[[:alnum:]]([-_.]?[[:alnum:]])*@[[:alnum:]]([-_.]?[[:alnum:]])*.([a-z]{2,4})$`',$frm['email'])) {

$erreurs['email'] = true;

$msg['email'] = stripslashes(ERR_EMAIL_BAD);

}

if (empty($frm['telephone'])) {

$erreurs['telephone'] = true;

$msg['telephone'] = stripslashes(MSG_ERR_TEL);

}

return $msg;

}

function insere_utilisateur(&$frm) {

global $support;

global $site;

$sql = "

INSERT INTO peel_tickets (

email

, nom

, telephone

, texte

, dispo

, datetime

) VALUES (

'$frm'

,'".htmlspecialchars($frm['nom'],ENT_QUOTES)."'

,'$frm[telephone]'

,'".htmlspecialchars($frm['texte'],ENT_QUOTES)."'

,'".htmlspecialchars($frm['dispo'],ENT_QUOTES)."'

,now()

)";

/* Ajoute le nouvel utilisateur &agrave; la base */

$qid = mysql_query($sql);

$ticket_id = mysql_insert_id();

$message = "Détail du message envoyé le ".date("d-m-Y H:i:s");

$message .= "Tel : ".$frm['telephone']."\n\n";

$message .= "Email : ".$frm['email']."\n\n";

$message .= "Disponibilité : ".$frm['dispo']."\n\n";

$message .= "Message :\n\r\n\r ".stripslashes($frm['texte'])."\n\n";

mail($support,"[$site] prise de contact numéro $ticket_id",$message,"FROM: $frm");

}

function affiche_formulaire_enregistrement() {

GLOBAL $frm, $erreurs, $message_erreur, $wwwroot, $site;

$marqueur_erreur = "<font color=RED>".htmlspecialchars("<=")."</font>";

?>

<div class="entete"><?echo CONSEIL; ?></div>

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

<table cellpadding="5" cellspacing=0 border="0" >

<tr>

<td class="normal"><?echo strtoupper(EMAIL); ?> <span class="etoile">(*)</span> :</td>

<td class="normal"><input class="formulaire1" type="text" name="email" size="50" value="<?=stripslashes(vb($frm['email']))?>">

<? if (isset($erreurs['email'])) echo $marqueur_erreur." ".$message_erreur['email'] ?>

</td>

</tr>

<tr>

<td class="normal"><?echo strtoupper(NAME); ?> <span class="etoile">(*)</span> :</td>

<td class="normal"><input class="formulaire1" type="text" name="nom" size="50" value="<?=stripslashes(vb($frm['nom'])) ?>">

<? if (isset($erreurs['nom'])) echo $marqueur_erreur." ".$message_erreur['nom'] ?>

</td>

</tr>

<tr>

<td class="normal"><?echo TELEPHONE; ?> <span class="etoile">(*)</span> :</td>

<td class="normal"><input class="formulaire1" type="text" name="telephone" size="50" value="<?=vb($frm['telephone']) ?>">

<? if (isset($erreurs['telephone'])) echo $marqueur_erreur." ".$message_erreur['telephone'] ?>

</td>

</tr>

</tr>

<tr valign=top>

<td class="normal"><?echo TEXTE; ?> :</td>

<td class="normal">

<textarea class="formulaire1" name="texte" cols="36" rows="10"><?=stripslashes(vb($frm['texte'])) ?></textarea>

</td>

</tr>

<tr valign=top>

<td class="normal"><?echo DISPO; ?> :</td>

<td class="normal">

<select name="dispo" class="formulaire1">

<option value="A.M">Matin</option>

<option value="P.M">Apr&egrave;s-midi</option>

</select>

</td>

</tr>

</td>

</tr>

<tr>

<td colspan="2" align="center">

<input type="submit" value="<?echo SEND; ?>" class="bouton"><p></p></td>

</tr>

<tr><td colspan=2 align=center class=petit>

<p><?echo nl2br(CNIL); ?></p>

</td></tr>

</table>

</form> <?

};

function afficher_enregistrement_succes() {

GLOBAL $wwwroot;

?>

<font class="titre"><?echo HELLO; ?></font>

<p class="normal">

<?echo nl2br(stripslashes(MSG_TICKET_OK));?>

</p>

<?

}

?>

Bonjour,

Je suis parvenu à installer le script.

Pour info, lorsque l'on dit à la racine du site ces dans votre fichier "boutique".

Cordialement,

!balam

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Merci, sympatique ce systeme;

je l'ai un peu adapté, je ne voulai pas qu'il me donne un echo à chaque fois que je l'appelle. Mais sinon ca marche nikel; merci pour cette contribution.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

Après installation du script "cryptograph" je n'arrive pas a avoir un affichage de l'image généré.

Je précise peel est installé non pas a la racine du site mais dans un répertoire (http://www.mondomaine.fr/boutique/).

Si vous pouviez me donner une piste a suivre.

Merci d'avance

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

Après installation du script "cryptograph" je n'arrive pas a avoir un affichage de l'image généré.

Je précise peel est installé non pas a la racine du site mais dans un répertoire (http://www.mondomaine.fr/boutique/).

Si vous pouviez me donner une piste a suivre.

Merci d'avance

Pour info, il faut installer le répertoire du script dans le répertoire: http://www.mondomaine.fr/boutique/

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Pour info, il faut installer le répertoire du script dans le répertoire: http://www.mondomaine.fr/boutique/

Willy

Le script est installé dans ce répertoire. Apres avoir rajouté également le repertoire crypt dans utilisateur et modifié la premiere partie par

$cryptinstall="./crypt/cryptographp.fct.php";

cela fonctionne, mais je ne suis pas sûr que ce soit une installation propre.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

l'ensemble fonctionne suf une erreur permanente sur cette ligne du point 5) dès l'envoi du formulaire

Undefined index: code in >>>>> if (chk_crypt($_POST['code'])) {

5) Dans la fonction : function valide_form(&$frm, &$erreurs) inserez :

if (chk_crypt($_POST['code'])) {

}else{

$erreurs['captcha'] = true;

$msg['captcha'] = "Code de vérification incorrect";

}

merci de vos réponses

louis

http://www.louisbourdon.com/boutique/index.php

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !


Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.


Connectez-vous maintenant

Twitter Advisto ecommerce

Facebook PEEL Shopping