Rechercher : dans
Par :

[php] sécurisé accès page

Dernière réponse le 15 sep 2009 à 16:42:18 Benoît, le 8 aoû 2005 à 09:30:39 
 Signaler ce message aux modérateurs

Salut,

nous avons créer un formulaire demandant à l'utilisateur de rentrer son mot de passe et login lui permettant d'accéder à une page précise. Le problème est que cette page est visible dans la barre des adresses. Comment sécuriser l'accés pour que l'utilisateur ne tape pas le nom de la page et accède a cette dernière.

On m a parlé de htaccess ??

Merci d'avance

Meilleures réponses pour « [php] sécurisé accès page » dans :
Plusieurs pages d'accueil pour son navigateur VoirPlusieurs pages d'accueil au démarrage Il est possible d'avoir plusieurs pages d'accueil au démarrage des navigateurs internet. Toutefois, il faut ruser pour y parvenir avec la version actuelle de Microsoft Internet Explorer. Le plus simple est...
Remettre le portail Orange en page d'accueil VoirPar défaut, la page de démarrage du navigateur internet est généralement celle de votre fournisseur d'accès. Pour remettre la page par défaut du portail Orange : Ouvrir le navigateur Cliquer sur outils->options internet Saisir...
WEB - Accéder à une page qui ne répond plus VoirIl arrive souvent que certains serveurs web soient surchargés parce que beaucoup de monde essaie d'accéder à une page. Quand une page ne répond pas, il existe des moyens d'en voir malgré tout le contenu : Warrick Warrick permet de récupérer une...

1

Erdnax, le 8 aoû 2005 à 11:25:52
  • +5

Salut,

Pour sécuriser l'accès à un page, tu as, à ma connaissance, deux moyens.

Les .htaccess :
Avec ça, tu peux protéger l'accès à tout un répertoire de ton site, de manière très sécurisée, mais pas très pratique si tu veux faire une administration complète du site.
http://www.infres.enst.fr/~danzart/frames/htaccess.html

et

Le php :
Pour ça, je te conseil d'utiliser les sessions. Tu fais un formulaire de login que tu envoie sur une page de vérification. Si les login et mot de passe sont juste, alors tu enregistre une session et tu redirige le visiteur vers la page, sinon tu reviens au formulaire. Ensuite, sur la page à protéger, tu vérifie que la session à été enregistrée, et sinon, tu renvoie le visiteur sur le formulaire.
http://www.phpdebutant.org/article69.php

@+
(_..:: P'tit Suisse ::.._)

Répondre à Erdnax

2

Benoît, le 8 aoû 2005 à 11:42:54

Je te remercie.

Répondre à Benoît

3

Erdnax, le 8 aoû 2005 à 11:46:42
  • +1

Petite précision, comme tu l'aura peut-être remarqué, je suis plus à l'aise avec la version php (la version htaccess, je l'ai essayée une fois 30mn sans la voir fonctionner et depuis je ne l'ai, peut-être à tort, plus touchée :P).

Donc si tu as des problèmes et que tu as décidé d'utiliser php, je devrait pouvoir t'aider. Et htaccess ... peut-être ^^.

Donc n'hésite pas à revenir si tu as des problèmes ;)
(_..:: P'tit Suisse ::.._)

Répondre à Erdnax

4

didiersee, le 7 jan 2007 à 09:25:11

Salut ptit suisse, j'ai été voir le site php débutant mais il faut préalablement avoir créé une base de donnée avec login et mot de passe pour utiliser les sessions.
Est ce corrrect ou y a t-il un autre moyen ?

Répondre à didiersee

5

lefou4, le 7 jan 2007 à 18:41:13

Il vaut mieux en effet stocker les données dans une bdd avec le mot de passe en PASSWORD.

Lorsque le membre se connecte, tu interroges la bdd pour voir si un résultat existe.

Si ce n'est pas le cas, alors affichage d'un message d'erreur.
Si c'est le cas, tu stockes par exemple le pseudo dans une variable de SESSION. Pour les pages à accès restreint, il te suffit ensuite de tester la présence de cette variable de session.

Répondre à lefou4

6

annonym-e, le 10 avr 2007 à 14:46:58

Tu devrais utilisé MD5 au lieu de PASSWORD, il est un peu moins connu et même plus efficace.

Répondre à annonym-e

7

H, le 10 avr 2007 à 22:51:20
  • +1

Pour la protection des espaces d'administration :

- Vaut mieux un htaccess (surtout si vous codez mal les script d'identification en php) et cela permet de rendre innaccessible TOUS les fichiers contenus dans les répertoires et sous répertoires.

Si quand même vous voulez passer par le php :

- Mettez des sessions à TOUS les scripts contenus dans les répertoires (même les includes... du genre menu.php car un pirate peut s'en serveur pour savoir les autres noms des pages avec les liens.)

- Regardez bien quelle est la configuration du serveur (si les magic quotes sont activées pour les identifications dont il faut chercher les identifiants dans la base de donnée. Cela pour éviter les injections SQL)

- Regardez si votre site ne possède pas d'include locale. ( de même dans le cas d'un htacess.

Pour reprendre vos dires :

Il vaut mieux en effet stocker les données dans une bdd avec le mot de passe en PASSWORD.

=> codage en MD5 (même si il existe des tables de correspondance)

Avec ça, tu peux protéger l'accès à tout un répertoire de ton site, de manière très sécurisée, mais pas très pratique si tu veux faire une administration complète du site.

=> il n'y a pas de problèmes pour avoir un accès à une administration complète, dui moment qu'elle est dans les sous répertoires ou dans les répertoires contenant le .htapasswd et le .htaccess. (d'ailleurs le htaccess sert à pliens de choses utiles...google)


Et puis voiloute, en tous les cas, pour contrer les pirates, ne nomez jamais un dossier d'administration : /admin/ ou /administration/ (trop devinable.) et aussi utilisez pas le même mot de passe partout !

Et puis, si un pirate veut vous attaquer, il n'aurra pas de mal.

Répondre à H

8

sabak'noGAARA, le 5 déc 2007 à 17:31:26
  • +1

Persnnellement, j'ai fait une page d'Administration sécurisée par PHP et c'est quasi inviolable et sans BDD ^^.

EN GROS, je récupère le login et mot de passe tapé, je hashe en md5 plusieurs fois le mot de passe et le compare avec le hash du bon mot de passe contenu dans la source, si ça correspond c'est que le mot de passe initial est correct et j'autorise l'accès.

Donc le code en partie:

if (!empty($_POST['password']))
{
$pass = htmlentities($_POST['password'], ENT_QUOTES);
$pass = md5(md5(md5($pass)));
}

if (isset($pass) AND $pass = $hash) //Il faudra évidemment déclarer $hash avant ^^
{
echo 'Page Protégée';
}
else
{
echo 'Formulaire';
}

Bon evidemment le mien est un peu plus élaboré, je n,'ai authorisé que deux essais, sinon il enregistre l'IP dans un doc txt, et si l'IP est dans ce fameux doc txt, le formulaire ne s'affiche plus :D Et y'a un gentil message de Vous avez dépassé le nombre de tentatives autorisées.

Mais je pense que ça suffira...

Répondre à sabak'noGAARA

9

shreek69, le 29 mai 2008 à 15:09:01

Bonjour ,
Voila j'ai une base de donnees acess comportant une table qui contient les champs:Nom et Prenom et Mot_de_passe.
Je voudrais faire un petit formulaire d'identification qui une fois valider dirige l'utilisateur faire un site.Pour l'identification je voudrai comparer ce que l'utilisateur rentre comme Nom Prenom ert mdp avec le contenu de ma bdd acess, si les champs sont identique alors je le redirige vers mon site sinon ecrire erreur d'identification.
J'ai tres bien etablie la connexion avec ma BDD acess (avec l'obdc et tt sa) mais je ne sais pas comment faire pour comparer les saisies de l'utilisateur avec les donnees de ma bases de donnees.
Voila si quelqu'un pourrait m'aider je le remercie d'avance.

Répondre à shreek69

10

anis, le 31 mai 2008 à 00:27:50
  • +2

Bonjour shreek69,

//////////////// le formulaire.html

<html>
<head>
<title>Connexion au site</title>
</head>
<body>
<form method="post" action="acces.php">
<table border="0" width="400" align="center">
<tr>
<td width="200"><b>Vôtre nom</b></td>
<td width="200">
<input type="text" name="nom">
</td>
</tr>
<tr>
<td width="200"><b>Vôtre prenom</b></td>
<td width="200">
<input type="text" name="prenom">
</td>.
</tr>
<tr>
<td width="200"><b>Vôtre mot de passe<b></td>
<td width="200">
<input type="password" name="password">
</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" name="submit" value="login">
</td>
</tr>
</table>
</form>
</body>
</html>

/////////////////////////// la page acces.php



<?php
// On démarre la session
session_start();
$loginOK = false; // cf Astuce

// On n'effectue les traitement qu'à la condition que
// les informations aient été effectivement postées
if ( isset($_POST) && (!empty($_POST['nom'])) && (!empty($_POST['prenom'])) && (!empty($_POST['password'])) ) {



//connection a la bese de données
$link = mysql_connect('localhost', 'root', '') or die('impossible de se connecter à la base de données');
if($link)
$db = mysql_select_db("nom_de_la_base", $link) or die('impossible d\'accéder à la base de données');





extract($_POST); // pour creer $nom, $prenom, $password

// On va chercher le mot de passe dans (user) la table qui contient les informations
$sql = "SELECT nom, prenom, mdp FROM user WHERE nom = '".addslashes($nom)."' and prenom = '".addslashes($prenom)."'";
$req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);

// On vérifie que l'utilisateur existe bien
if (mysql_num_rows($req) > 0) {

while ($donnees = mysql_fetch_array($req)) // On fait une boucle pour lister les résultats dans le cas ou ilya
// deux personne qui ont le mm nom et le mm prenom et des mdp differentes
{
// On vérifie que son mot de passe est correct
if ($password == $donnees ['Mot_de_passe']) {
$loginOK = true;
}
}
}

// Si le login a été validé on met les données en sessions
if ($loginOK) {
echo "identification reussite";
sleep(3);

header('Location: mon_Site.com'); //tu doit présiser la page ou on doit etre rediriger
}
else {
echo 'Une erreur est survenue, veuillez réessayer !';
}
?>


tu doit changer nom_de_la_base, user, mon_Site.com par tes propres informations
bonne contuniation

Répondre à anis

11

shreek69, le 2 jun 2008 à 16:39:20

OK merci Anis c'est pafait
Jve tester tout sa cio

Répondre à shreek69

22

philou, le 26 jui 2009 à 13:47:30

Je suis debutant en la matiere et je cherche a creer une page securisee par mot de passe pour le site que je suis en train de finaliser
est il possible que tu m'aides dans ce sens ou me donner un code en HTML pour le faire avec le details des textes et mots a integrer dans le code pour que cela fonctionne
Un grand merci

Répondre à philou

12

errog21, le 23 aoû 2008 à 08:37:27

Bonjour,

J'ai le meme pb que celui cité au premier message
J'ai bien lu les posts, mais je n'ai pas vraiment la réponse a mon probleme :

Je voudrais mettre en ligne les résultats de mes élèves avec acces par login et mot de passe.

les fichiers élèves sont dans par exemple .../RESULTATS/ELEVE1/fichiers.. RESULTATS/ELEVE2/fichiers..

La solution des .htaccess placés dans chaque ss repertoire ELEVEx fonctionne bien mais je voudrais une gestion dynamique ( par l'utilisateur ) des mots de passe : je passe donc par une base de de données qui gère login et password et je m'interdis les .htaccess.

L'eleve 1 tape son login et mot de passe , validé via la base de données, et il est alors dirigé vers une page par exemple accueil.html dans le repertoire ELEVE1.

Le pb est qu'il suffit de taper l'adresse .../RESULTATS/ pour voir la liste des ss repertoires et des fichiers
dans : Index of ... .../RESULTATS/


et l'acces est alors immédiat et non protégé.

On ne peut pas non plus masquer l'adresse ...

Existe-il une solution permettant de donner un acces protégé à une page par login et password gérés dans une base de données, et sans .htaccess ?

Merci.

Répondre à errog21

13

anis, le 23 aoû 2008 à 11:06:39

C trés facile en utilisant les sessions !!

regarde mon exemple précedent:

il suffit d'ajouter le code suivant à chaque page que tu veux protéger
<?php
if (!$loginOK) {
header('Location: login.php');
}
?>

dans l'exemple prec on change $loginOk à true si le login et mot de passe existe dans la base de données
alors il suffit de tester ce $loginOk a chaque fois q'on veut accéder à la page
si true
on autorise l'affichage de la page
sinon
on redirige l'utilisateur vers la page d'identification login.php

j'espere que ça vous aide !!
bonne contuniation

Répondre à anis

19

malmoth, le 17 oct 2008 à 03:56:17

J'ai un peu de mal à mettre en œuvre cette méthode. Aucun problème pour l'authentification ni pour la redirection vers une page html. Par contre, lorsque que je rajoute le petit bout de code qui permet de sécuriser les pages à protéger (qui deviennent donc des .php) je suis systématiquement renvoyé vers la page d'authentification.

En analysant un peu, je me demande s'il n'y a pas un problème de portée de la variable loginOK, parce qu'elle ne semble pas être initialisée dans le script de la page à sécuriser.

Répondre à malmoth

20

malmoth, le 17 oct 2008 à 04:50:52

J'ai dû utiliser la variable $_SESSION['loginOK'] à la place de $loginOK pour que ça marche. J'ai peut-être loupé quelque chose.

En tout cas, merci pour les explications.

Répondre à malmoth

14

errog21, le 23 aoû 2008 à 11:17:42

Merci
OK je comprends le principe je m'en vais l'essayer de ce pas !

Répondre à errog21

15

errog21, le 23 aoû 2008 à 13:39:52

Rebonjour,

ça fonctionne sans pb a condition de pouvoir modifier le contenu de la page à protéger.

Je dispose au moins d'une cinquantaine de pages HTML générés par des macro par le tableur d'openoffice et je ne me vois pas ajouter les quelques lignes a chaque fichier.

Peut-on automatiser cette transformation ? ( peut etre par un editeur de texte word ou writer et des macros...)

Merci.

Répondre à errog21

16

anis, le 24 aoû 2008 à 21:44:22
  • +1

Pour l'automatisation de l'opération je connais pas trop.
par contre je vous propose de maiitre tout vos fichiers à sécuriser d'un dossier que vous le sécuriser par un fichier .htaccess
pour cela:
-creer 2 fichier un .htaccess et un .htpasswd

##### code de .htaccess ######

AuthName "Accès réservé"
AuthType Basic
AuthUserFile /kunden/homepages/19/d170958/htdocs/.htpasswd
Require valid-user

#### code de .htpasswd ######

azer:rM8nnqh5HBLLk
azert:rMssd8nnqsddh5HB


pour le .htaccess vous devez just changer AuthUserFile c le chemin absolu du fichier .htpasswd qui contient les login et les mots de passes , pour connaitre le chemin absolut du fichier vous pouvez maitre un fichier php qui contient l'instruction suivante
<?php phpinfo(); ?> puis lancez le dans un navigateur là vous trouverez tout les informations

pour le .htpasswd sur chaque ligne il ya 1 login suivi d1 mot de passe crypté
pour crypter les mot de passe vous pouvez utilisez http://shop.alterlinks.com/htpasswd/passwd.php


le fichier .htaccess doit etre dans le repertoire à sécuriser.

j'espère que ça vous aide

Répondre à anis

17

bg62, le 25 aoû 2008 à 15:30:36

Bonjour
il n'est pas obligatoire d'être inscrit ...
mais savoir à qui l'on répond sur le forum est toujours plus agréable pour les gens qui veulent aider !
alors ...inscrivez-vous
merci
b g
le 'www' est fait aussi pour communiquer, partager et échanger, non ?

Répondre à bg62

18

errog21, le 27 aoû 2008 à 22:09:37

Bonsoir,

En reponse à anis : justement j'ai bien précisé que je ne voulais pas dans ce acs de .htaccess , car je veux que l'utilisateur puisse gérer son mot de passe.
Merci quand meme.


En réponse à bg62 : je ne comprends pas le message ??? je suis inscrit.

Eric

Répondre à errog21

21

vla42, le 29 mai 2009 à 18:37:57

Bonjour,
Donc moi je voudrais ajouter sur mon site un code d'accès à 6 lettres (+ un identifiant si possible) dès la première page de mon site mais sans que l'adresse internet n'apparaisse sinon il suffit de modifier l'adresse pour entrer dans mon site :)
Je crée mon site avec XWebDesignor (http://www.toolbox.free.fr/)
J'ai essayé tout ce que j'ai trouvé sur le net mais ça ne marche pas

PS: mon site n'est pas encore publié. Je ne sais si c'est pour ça que ça ne marche pas ?

Réponse Urgente

Cordialement
VLA42

Répondre à vla42

23

vla42, le 27 jui 2009 à 19:00:54

Ce n'est plus la peine de me répondre, j'ai arrêté mon site !

Répondre à vla42

24

 vincan, le 15 sep 2009 à 16:42:18

Bonjour Vla42, je suis entrain de faire egalement un site sur xwebdesignor et je souhaiterai mettre en place egalement ce genre de systeme d'authentification (identifiant et mdt) pour utilisateurs. Merci de me dire si tu as reussi et comment.

bien à toi

Vincan

Répondre à vincan
Collection CommentÇaMarche.net