Rechercher : dans
Par :

Php / formulaire

Dernière réponse le 26 oct 2007 à 16:23:17 erina, le 21 oct 2007 à 21:12:12 
 Signaler ce message aux modérateurs

Bonjour, j'aimerais votre avis sur un code que j'ai fait qui consiste à accéder par un formulaire à une page protégée , je voudrais savoir si ya des choses qu'on peut améliorer niveau sécurité et propreté :

<form method="post" action="gloup.php">
<input type="text" name="username" value="Erina" > <br />
<input type="password" name="pass" value="********"> <br /> <br />
<input type="submit" value="valid">
</form>

<?php

if(isset($_POST['username']) && isset($_POST['pass']))
{
$username = $_POST['username'];
$pass = $_POST['pass'];

if($username == 'erina' && $pass = 'couki')
{
header('Location:gloup.php');
die;
}
else
{
header('Location:vok.php');
die;
}
}
?>

Donc ici dans mon formulaire , si la valeur du pseudo vaut erina et celle du mot de passe vaut couki j'accède à la page gloup.php sinon c'est la page vok.php qui s'affiche .

merci de votre aide .

Meilleures réponses pour « php / formulaire » dans :
[PHP] Upload de fichiers VoirLe langage PHP permet de gérer des fichiers envoyés (uploadés) grâce à un formulaire HTML. Formulaire d'envoi de fichiers Configuration de PHP pour permettre l'upload Récupération du fichier avec PHP Formulaire d'envoi de fichiers La...
[Webmaster] Un formulaire de contact pour votre site VoirCe formulaire permet d'avoir une page pour être contacté sur son site, sans utiliser de logiciel de messagerie. La personne qui vous contacte indique son adresse, l'objet du message et son message (évidemment). Le code est une version...
PHP - Récupération de données VoirPHP rend très simple la récupération de données envoyées par l'intermédiaire de formulaires HTML. Création d'un formulaire Grâce à la balise FORM du langage HTML, il est très simple de créer des formulaires comprenant : des champs de saisie des...

1

mikaelver, le 22 oct 2007 à 09:05:26

Tu pourrais, par exemple, y ajouter des cookies et ajouter des utilisateurs via une base sql

Répondre à mikaelver

2

erina, le 22 oct 2007 à 23:27:26

çà ne répond pas trop à ma question , j'aimerais savoir si ce code a des problèmes de sécurité et si au niveau de la syntaxe il est comment dire " propre" , merci

Répondre à erina

3

erina, le 23 oct 2007 à 20:56:00

Personne ne peut me dire si je peux améliorer le script au niveau de la sécurité ou de la syntaxe svp ?

Répondre à erina

4

erina, le 25 oct 2007 à 21:53:51

Personne peut m'aider pour cette petite question , ici il s'agit juste d'accéder à une page , dois je par exemple utilise htmlspecialchars , le code est il propre...?

merci

Répondre à erina

5

Alain42, le 26 oct 2007 à 14:27:02

Bonjour,

Déja quand tu mets:
<input type="text" name="username" value="Erina" >
tu vas donner la moité du code, puisque tu affiche l'username, avec un emajuscule d'ailleurs qui ne serra pas correcte puisque tu fais plus loin
if($username == 'erina'

Il est bon aussi de faire un petit coup de htmlentities(...) pour éviter les codes malicieux
un contrôle aussi sur la longueur


Regardes aussi sur Google comment mettre en plac le mécanisme des sessions PHP (avec cookies)

Inspires toi de ça:

<?php
// Les identifiants sont transmis ?
        if(!empty($_POST['username']) && !empty($_POST['pass'])) {
			// verif integrite des saisies, pas de balises html, longueur maxi 15 caracteres lettres ou chiffres
			$RE = "^[a-zA-Z0-9][a-zA-Z0-9_]{1,15}$";// caract acceptes pour login et mdp et  longueur chaine 15 maxi
			if (ereg($RE,$_POST['username']) && ereg($RE,$_POST['password'])){
				$username = htmlentities( $_POST['login']) ;
				$pass = htmlentities($_POST['password']) ;
				// si les deux saisies sont ok on continue l'auth
				 if($username == 'erina' && $pass = 'couki'){
					header('Location:ta_page_destination.php');
					
				}else{
					header('Location:ta_page_saisie_login_pass.php');
				
				}
			}
			
		}else {
         // si les identifiants n'ont pas ete saisis
		 echo  'Veuillez entrer vos identifiants!';
     }

?>

et en haut de chaque page à protéger tu mets:

<code><?php
session_start() ;
if(!isset($_SESSION['page']) || $_SESSION['page'] == ""){
// si deconnecté ou accès direct a la page sans être loggué, on renvoie à la page de saisie des login et pass
// attention le header (  ) ne doit êtr e précédé d'aucun caractère HTML
	header("Location: ta_page_formulaire_de_saisie_login_pass.html") ;
}
else
{
?>
<html>
ta page html
</html>
<?php
}
?>

</code>

Répondre à Alain42

6

edevouge, le 26 oct 2007 à 15:37:45

Bonjour,
En effet tu n'utilise pas la fonction htmlentities() ce qui est risqué!

Répondre à edevouge

7

 Alain42, le 26 oct 2007 à 16:23:17

Salut,

c'est encore moi, je viens de me rendre compte que j'ai oublié un bout de code, alors la première partie est:

<?php
// Les identifiants sont transmis ?
        if(!empty($_POST['username']) && !empty($_POST['pass'])) {
			// verif integrite des saisies, pas de balises html, longueur maxi 15 caracteres lettres ou chiffres
       			$RE = "^[a-zA-Z0-9][a-zA-Z0-9_]{1,15}$";// caract acceptes pour login et mdp et  longueur chaine 15 maxi
			if (ereg($RE,$_POST['username']) && ereg($RE,$_POST['password'])){
				$username = htmlentities( $_POST['login']) ;
				$pass = htmlentities($_POST['password']) ;
				// si les deux saisies sont ok on continue l'auth
				 if($username == 'erina' && $pass == 'couki'){
                                            session_start() ;//début de la session
				         $_SESSION['page'] = $login ;//enregistrement d'une variable de session (page), ici le login de l'utilisateur:
					header('Location:ta_page_destination.php');
					
				}else{
					header('Location:ta_page_saisie_login_pass.php');
				
				}
			}
			
		}else {
         // si les identifiants n'ont pas ete saisis
		 echo  'Veuillez entrer vos identifiants!';
     }

?>


Sinon une autre solution pour protéger toutes les pages qui sont dans un sous répertoire est de mettre un fichier
.htaccess et un fichier .htpasswd dans ce répertoire

Dès que le serveur trouve un fichier .htaccess dans le répertoire qui contient la page appelée, il ouvre une fenêtre pour saisir login et mot de pass
et il les vérifie par rapport à ceux que tu as rentrés (codés) dans .htpasswd

Vas voir sur Google comment faire

Répondre à Alain42
Collection CommentÇaMarche.net