Securisé mon serveur web

Résolu/Fermé
infosoftgvc Messages postés 16 Date d'inscription jeudi 29 mai 2008 Statut Membre Dernière intervention 12 décembre 2008 - 26 nov. 2008 à 10:31
infosoftgvc Messages postés 16 Date d'inscription jeudi 29 mai 2008 Statut Membre Dernière intervention 12 décembre 2008 - 26 nov. 2008 à 18:23
Bonjour,
il y a quelques temps de cela que je viens de mettre en place un serveur web sous linux pour recuperer les formulaires d'inscripstion.
Ainsi pour gerer les champs obligatoires , je me suis investi sur javascript pour palier au souci , il marche nikel.
seulement j'arrive à retrouver des enregistrements qui ne correspondent(du texte à la place du numerique et inversement) à rien du tout dans ma base mysql.
Je pense que cela est dû au fait qu'il peut y avoir du js de désactivé sur le navigateur coté client.
alors quelle solution éfficace me proposer vous pour palier à ce souci.
quelques fois une ligne inserer sans donnée alors que je l'ai interdit.
j'ai supprimé toute connection anonyme sur mon serveur pour eviter les intrusions,
alors aidez moi , je suis coincé
merci bien

10 réponses

Salut utilise php a la place du javascript
0
Bonjour

Comme tu le fais remarquer toi-même, les contrôles effectués par javascript sont totalement inefficaces pour les utilisateurs qui ont désactivé le javascript.
Dans tous les cas, que tu fasses ou non un contrôle en javascript, tu dois obligatoirement en faire un du côté du serveur, c'est le seul moyen d'être sûr que tu n'enregistres pas des données incorrectes.
0
infosoftgvc Messages postés 16 Date d'inscription jeudi 29 mai 2008 Statut Membre Dernière intervention 12 décembre 2008
26 nov. 2008 à 10:44
Tout à fait , je m'en doutais,
Pouriez vous me donner une idée des controles avec php, j'en ai jamais fait en plus,
j'ai un profil administrateur et je suis entrain de revenir à fond dans la programmation .
Juste la syntaxe avec un exemple bidon et je m'en occuperai.
Merci bien
0
infosoftgvc Messages postés 16 Date d'inscription jeudi 29 mai 2008 Statut Membre Dernière intervention 12 décembre 2008
26 nov. 2008 à 11:00
merci , mais je ne pense pas que ça soit ce que je veux ,
j'ai tenu compte de vous remarques et je veux tout gerer avec php , coté serveur alors que le lien que tu m'a donné met en avant java scrip que j'ai déjà fait et l'exemple n'est pas complet.
j'ai besoin d'un lien plus explicite te au mieu un peu nmieux guidé pour que je puisse m'en sortir.
Merci à toi franck.
Pour vous donner une idée
je disposer d'une page html pour la saisie des donnée et d'une page php pour recuperer les données de mon formulaire et ensuite les integrer dans la base.
j'ai besoin de la methode et surtout d'une direction pour ce que je dois faire. je fouille en meme temps.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
infosoftgvc Messages postés 16 Date d'inscription jeudi 29 mai 2008 Statut Membre Dernière intervention 12 décembre 2008
26 nov. 2008 à 11:19
je vous met à disposition mes deux fichiers html et php pour être plus parlant.

Fichier HTML

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<meta name="author" content="">

<title> Bienvenue sur ma page </title>
</head>
<body >
<br/>
<form name="suggestions" action="envoi.php" method="post" enctype="application/x-www-form-urlencoded" >
<!--
Quel produits vous interressent ?
-->

<br/>

<br/>

<div>
<center><h2><font color="green">Message pour l’enseble ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !</font> </h2></center>
</div>
<div>
Merci de nous faire part de vos suggestions en remplissant ce formulaire !
<br/>
<div>
Nom: <input type="text" name="Nom">
</div>
<div>
Prenom: <input type="text" name="Prenom">
</div>

<div>
Adresse: <input type="text" name="Adresse"> Ville <input type="text" name="Ville"> CP <input type="text" name="CP">

</div>
<div>
Pays : <select name="Pays" >
<option value="">selectionner votre pays</option>
<option value="FR">France</option>
<option value="BEL">belgique</option>
</select>
</div>

<div>
Tél. domicile <input type="text" name="Tel"> Mobile <input type="text" name="Mobile">

</div>

<div>
Email:<input type="text" name="Email">
</div>
<br/>
<textarea name="suggestions" rows="5" cols="30" >Vos suggestions</textarea>

<input type="submit" onclick="return verifier();" value="Valider" > <input type="reset" value="Effacer">
</form>
</body>
</html>


Fichier PHP , recuperation des donnees et integration dans la base


<?php

$mysql_serveur = "localhost";
$mysql_pseudo = "root";
$mysql_pass = "mon mot de pass";
$mysql_bdd = "nom_de_base";


$connexion = mysql_connect($mysql_serveur,$mysql_pseudo,$mysql_pass) or
die('<p>Erreur de connexion à la base de données</p>');

if(!$connexion) die("Pas de connexion à la base de donnée");
if(!mysql_select_db($mysql_bdd,$connexion)) die("Pas de base de donnée
sélectionnée");


$Nom = $_POST['Nom'];
$Prenom = $_POST['Prenom'];
$Adresse = $_POST['Adresse'];
$Ville = $_POST['Ville'];
$CP = $_POST['CP'];
$Pays = $_POST['Pays'];
$Tel = $_POST['Tel'];
$Mobile = $_POST['Mobile'];
$Email =$_POST['Email'];
$suggestions = $_POST['suggestions'];


$requete="INSERT INTO suggestions VALUES ('".$Nom."',
'".$Prenom."' ,'".$Adresse."' ,'".$Ville."' ,'".$CP."','".$Pays."','".$Tel."','".$Mobile."','".$Email."','".$suggestions."');";

$result=mysql_query($requete) or die("Erreur SQL :
<b>".mysql_error()."</b><br/>$requete");


if ($result)

{



echo " <h2 align=center><font color=green> Merci Monsieur ou Madame
</font></h2>" ;
echo " <p align=center>";
echo " Message de confirmation <br/> " ;

}
mysql_close($connexion);


?>


Vous pouriez tou simplement me proposer un exemple avec champs obligatoire nom et prenom . uniquement des chiffres sur le champs code postal.

Merci à vous
0
<?php

$mysql_serveur = "localhost";
$mysql_pseudo = "root";
$mysql_pass = "mon mot de pass";
$mysql_bdd = "nom_de_base";


$connexion = mysql_connect($mysql_serveur,$mysql_pseudo,$mysql_pass) or
die('<p>Erreur de connexion à la base de données</p>');

if(!$connexion) die("Pas de connexion à la base de donnée");
if(!mysql_select_db($mysql_bdd,$connexion)) die("Pas de base de donnée
sélectionnée");

$Nom = $_POST['Nom'];
$Prenom = $_POST['Prenom'];
$Adresse = $_POST['Adresse'];
$Ville = $_POST['Ville'];
$CP = $_POST['CP'];
$Pays = $_POST['Pays'];
$Tel = $_POST['Tel'];
$Mobile = $_POST['Mobile'];
$Email =$_POST['Email'];
$suggestions = $_POST['suggestions'];

//on Verifie si les variables sont definie sinon message d'erreur
if ( isset($Nom) && isset($Prenom) )
{
echo "Veuillez remplir les champs nom et prenom ";
}

//on verifie si le code postal est bien de type numerique
elseif(!is_numeric($CP)
{
echo "Chiffre obligatoires";
}
//On securise les variables pour eviter diverse injection
else
{
$Nom = htmlentities(addslashes($_POST['Nom']));
$Prenom= htmlentities(addslashes($_POST['Prenom']));
$CP = htmlentities(addslashes($_POST['CP']));

//insertion dans la base de donnees
$requete="INSERT INTO suggestions VALUES ('".$Nom."',
'".$Prenom."' ,'".$Adresse."' ,'".$Ville."' ,'".$CP."','".$Pays."','".$Tel."','".$Mobile."','".$Email."','".$suggestions."');";

$result=mysql_query($requete) or die("Erreur SQL :
<b>".mysql_error()."</b><br/>$requete");

}




if ($result)

{



echo " <h2 align=center><font color=green> Merci Monsieur ou Madame
</font></h2>" ;
echo " <p align=center>";
echo " Message de confirmation <br/> " ;

}
mysql_close($connexion);


?>



Voila c'est pas très propres mais ça va te donner une idée a bientôt
0
franck > franck
26 nov. 2008 à 11:44
//on verifie si le code postal est bien de type numerique
elseif(!is_numeric($CP))
{
echo "Chiffre obligatoires";
}


Désoler j'avais pas vu mais il manquait une parenthèse :) a changer dan le code
0
infosoftgvc Messages postés 16 Date d'inscription jeudi 29 mai 2008 Statut Membre Dernière intervention 12 décembre 2008
26 nov. 2008 à 11:46
MErci , franck , ç'a été très guidé,merci
je le teste de suite et vous tient au courant
0
infosoftgvc Messages postés 16 Date d'inscription jeudi 29 mai 2008 Statut Membre Dernière intervention 12 décembre 2008
26 nov. 2008 à 11:48
pas de quoi , je l'ai reperé , je vous tiens au courant
merci
0
<?php

$mysql_serveur = "localhost";
$mysql_pseudo = "root";
$mysql_pass = "mon mot de pass";
$mysql_bdd = "nom_de_base";


$connexion = mysql_connect($mysql_serveur,$mysql_pseudo,$mysql_pass) or
die('<p>Erreur de connexion à la base de données</p>');

if(!$connexion) die("Pas de connexion à la base de donnée");
if(!mysql_select_db($mysql_bdd,$connexion)) die("Pas de base de donnée
sélectionnée");

$Nom = $_POST['Nom'];
$Prenom = $_POST['Prenom'];
$Adresse = $_POST['Adresse'];
$Ville = $_POST['Ville'];
$CP = $_POST['CP'];
$Pays = $_POST['Pays'];
$Tel = $_POST['Tel'];
$Mobile = $_POST['Mobile'];
$Email =$_POST['Email'];
$suggestions = $_POST['suggestions'];

//on Verifie si les variables sont definie sinon message d'erreur
if ( isset($Nom) && isset($Prenom) && isset($Adresse) && isset($Ville) && isset($CP) && isset($Pays) && isset($Tel) && isset($Mobile) && isset($Email) && isset($suggestions) )
{
echo "Veuillez remplir tout les champs SVP ";
}

//on verifie si le code postal est bien de type numerique
elseif(!is_numeric($CP))
{
echo "Chiffre obligatoires";
}
//On securise les variables pour eviter diverse injection
else
{
$Nom = htmlentities(addslashes($_POST['Nom']));
$Prenom= htmlentities(addslashes($_POST['Prenom']));
$CP = htmlentities(addslashes($_POST['CP']));
$Adresse = htmlentities(addslashes($_POST['Adresse']));
$Ville = htmlentities(addslashes($_POST['Ville']));
$Pays = htmlentities(addslashes($_POST['Pays']));
$Tel = htmlentities(addslashes($_POST['Tel']));
$Mobile = htmlentities(addslashes($_POST['Mobile']));
$Email = htmlentities(addslashes($_POST['Email']));
$suggestions = htmlentities(addslashes($_POST['suggestions']));

//insertion dans la base de donnees
$requete="INSERT INTO suggestions VALUES ('".$Nom."',
'".$Prenom."' ,'".$Adresse."' ,'".$Ville."' ,'".$CP."','".$Pays."','".$Tel."','".$Mobile."','".$Email."','".$suggestions."');";

$result=mysql_query($requete) or die("Erreur SQL :
<b>".mysql_error()."</b><br/>$requete");

}




if ($result)

{



echo " <h2 align=center><font color=green> Merci Monsieur ou Madame
</font></h2>" ;
echo " <p align=center>";
echo " Message de confirmation <br/> " ;

}
mysql_close($connexion);


?>
0
franck > franck
26 nov. 2008 à 12:09
Oups lol
<?php

$mysql_serveur = "localhost";
$mysql_pseudo = "root";
$mysql_pass = "mon mot de pass";
$mysql_bdd = "nom_de_base";


$connexion = mysql_connect($mysql_serveur,$mysql_pseudo,$mysql_pass) or
die('<p>Erreur de connexion à la base de données</p>');

if(!$connexion) die("Pas de connexion à la base de donnée");
if(!mysql_select_db($mysql_bdd,$connexion)) die("Pas de base de donnée
sélectionnée");

$Nom = $_POST['Nom'];
$Prenom = $_POST['Prenom'];
$Adresse = $_POST['Adresse'];
$Ville = $_POST['Ville'];
$CP = $_POST['CP'];
$Pays = $_POST['Pays'];
$Tel = $_POST['Tel'];
$Mobile = $_POST['Mobile'];
$Email =$_POST['Email'];
$suggestions = $_POST['suggestions'];

//on Verifie si les variables sont definie sinon message d'erreur
if ( !isset($Nom) && !isset($Prenom) && !isset($Adresse) && !isset($Ville) && !isset($CP) && !isset($Pays) && !isset($Tel) && !isset($Mobile) && !isset($Email) && !isset($suggestions) )
{
echo "Veuillez remplir tout les champs SVP ";
}

//on verifie si le code postal est bien de type numerique
elseif(!is_numeric($CP))
{
echo "Chiffre obligatoires";
}
//On securise les variables pour eviter diverse injection
else
{
$Nom = htmlentities(addslashes($_POST['Nom']));
$Prenom= htmlentities(addslashes($_POST['Prenom']));
$CP = htmlentities(addslashes($_POST['CP']));
$Adresse = htmlentities(addslashes($_POST['Adresse']));
$Ville = htmlentities(addslashes($_POST['Ville']));
$Pays = htmlentities(addslashes($_POST['Pays']));
$Tel = htmlentities(addslashes($_POST['Tel']));
$Mobile = htmlentities(addslashes($_POST['Mobile']));
$Email = htmlentities(addslashes($_POST['Email']));
$suggestions = htmlentities(addslashes($_POST['suggestions']));

//insertion dans la base de donnees
$requete="INSERT INTO suggestions VALUES ('".$Nom."',
'".$Prenom."' ,'".$Adresse."' ,'".$Ville."' ,'".$CP."','".$Pays."','".$Tel."','".$Mobile."','".$Email."','".$suggestions."');";

$result=mysql_query($requete) or die("Erreur SQL :
<b>".mysql_error()."</b><br/>$requete");

}




if ($result)

{



echo " <h2 align=center><font color=green> Merci Monsieur ou Madame
</font></h2>" ;
echo " <p align=center>";
echo " Message de confirmation <br/> " ;

}
mysql_close($connexion);


?>
0
infosoftgvc Messages postés 16 Date d'inscription jeudi 29 mai 2008 Statut Membre Dernière intervention 12 décembre 2008
26 nov. 2008 à 12:54
je viens de le tester, il le fait bien pour specifier les chiffres sur le champs code postal quoique sur une autre page.
seulement une fois que ce champs est renseigné , il génère l'erreur sql suivante :

Erreur SQL : Duplicate entry '' for key 1
INSERT INTO suggestions VALUES ('', '' ,'' ,'' ,'45000','France ','','','','Vos suggestions'); au lie de renvoyer le message prevu à cet effet.


sinon , si tous les champs sontt remplis , le formulaire est bien validé.

Franck, je pense qu'il se trouve un souci da une boucle ,
au lieu que le message d'indication soit affiché sur une autre page , je souheterai qu'il s'affiche sur la meme page en conservant les champs qui sont déjà remplis.

Merci pour ton aide , je pense n'être plus loin de l'issu. merci en tout cas pour ta réactivité.
0
infosoftgvc Messages postés 16 Date d'inscription jeudi 29 mai 2008 Statut Membre Dernière intervention 12 décembre 2008
26 nov. 2008 à 14:11
slt!
ça va beaucoup mieux , le code agit maintenant sauf que l'affichage des messages pour bien preciser le type des données ne s'affiche pas , j'ai juste une page blanche qui s'affiche.
le probleme reste au niveau de l'affichage du message .
merci
0
infosoftgvc Messages postés 16 Date d'inscription jeudi 29 mai 2008 Statut Membre Dernière intervention 12 décembre 2008
26 nov. 2008 à 18:23
le message invitant à bien renseigner les champs ne s'affiche pas , en plus je souhaiterai qu'il s'affiche sur la page de mon formulaire.
Alors j'ai besoin de vous qui êtes un peu plus avancé sur ce sujet.
Merci
0