sécurisation de l'acces au site

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : sécurisation de l'acces au site

par AUDE » 08 sept. 2006, 13:19

D'accord, merci pour toutes vos aides.

par Cyrano » 08 sept. 2006, 12:46

cependant je n'ai toujours pas compris comment savoir le nom du fichier sur lequel je suis !
Comment l'ouvres-tu ? Tu utilises une suite d'instructions pour identifier et ouvrir le fichier voulu : tu dois donc forcément accéder au nom de ce fichier en cours de processus : il te suffit alors d'affecter ce nom à une variable.

par Aude » 08 sept. 2006, 11:45

oui pour linstant je suis en trein de tout repertorier et de les classer par groupe, ensuite je ferai certainement cela.

merci bcp pour vos aide.

cependant je n'ai toujours pas compris comment savoir le nom du fichier sur lequel je suis !

par Cyrano » 08 sept. 2006, 11:36

Alors je crois qu'il te faut commencer par établir une nomenclature des données avec our chacune d'elle (ou presque) une grille d'accès, un peu à la manière de ce qu'on fait dans un système de fichiers avec le chmod : le principe de fonctionnement de ce système, ce sont des chiffres qu'on additionne mais chaque valeur obtenue ne peut correspondre qu'à un cas spécifique : ainsi, tu as 1, 2 et 4 comme possibilités
- 1 = exécution
- 2 = écriture
- 4 = lecture
partant de là, 5 par exemple correspond à 1 + 4 => exécution + lecture mais pas écriture, ou encore 6 ne peut correspondre qu'à 2 + 4 => lecture + écriture mais pas exécution.

Donc tu peux prévoir pour chaque fichier une valeur correspondant à un accès particulier en mettant au point une échelle similaire, c'est en tous cas la piste que j'explorerais.

par Aude » 08 sept. 2006, 11:23

en faite moi je voulais faire une table fichier, avec pour identifiant num fichier, nom fichiers et cle etrangere num groupe de fichiers
Une table acces avec le num fichier le numéro de la personne et si elle a acces en lecture, ecriture ou/et suppression.

De plus une table groupe fichier avec le numero de groupe et le libellé.

Ainsi les fichiers sont regrouper par groupe cela peut etre plus facile par exemple toutes la parti employé est accessible au personnel du social.donc cela evite de donnée les droit sur tout les fichiers, un par un. A l'inverse les chargé clientele auront acces qu'au renseignement generaux sur les employé et non leurs contrat, leurs paie ou encore leurs absence.

Donc en faite jaurai rentrer les non des fichiers a la main, avec le groupe auquel il appartien.

merci

par Cyrano » 08 sept. 2006, 10:33

l'un n'empèche pas l'autre. Comment récupères-tu tes noms de fichiers ? Dans la base ?

par Aude » 08 sept. 2006, 10:30

non, en faite ce n'est pas ça que je voulais, en faite quand je suis sur une fenetre, j'aimerai savoir la commande qui permet de connaitre le nom du fichier sur lequel je suis.

Je travail a partir d'une table sur mysql et non un partir d'un tableau car j'ai plus de 350 fichiers de code. Donc je pense que c'est plus judicieux.

merci

par Cyrano » 08 sept. 2006, 10:09

Rien de plus simple : tu crées une variable et tu lui assignes une valeur :
<?php
$variable = "valeur";
?>
Reste donc à récupérer le nom de ton fichier et à l'affecter à une variable. Dans ton cas, il y aura certainement plusieurs fichiers, il pourrait être plus intéressant d'utiliser un tableau indexé. Donc tu pourrais récupérer la liste des noms via une requête SQL selon certains critères et affecter les noms dans un tableau:
<?php
$variable = array("fichier_1", "fichier_2", ..., "fichier_n");
?>
Et ensuite tu travailles sur le tableau. Pour les tableaux, jette un coup d'oeil dans le forum FAQ, il y a un sujet sur les tableaux qui te servira sûrement.

par Aude » 08 sept. 2006, 09:18

Je suis en trein dessayer de mettre en place cette solution, mais pour savoir si telle ou telle personne a un acces sur le fichier, pour cela tout mes fichiers sont repertorier dans une base. Mais j'airerais savoir quand on est sur une fenetre comment savoir le nom du fichier, pour puvoir ensuite le comparer avec la base.

en gros, je voudrai savoir quel commende esiste pour mettre dans une variable le nom du fichier en cours.

merci

par Cyrano » 07 sept. 2006, 11:28

Je dois créer ça dans une table de la base ?
C'est une possibilité oui, faut voir ce qui sera le plus simple pour toi et pour l'efficacité du fonctionnement de ton application.

par Aude » 07 sept. 2006, 11:25

Oki merci, je vais essayer de me debrouillé avec tout ça.

quand tu me dis cyrano de créer un tableau pour les differentes feuilles et de preciser les tables utiliser. Je dois créer ça dans une table de la base ?

merci

par zizou59 » 07 sept. 2006, 10:36

oui c'est vrai que cyrano est un peu plus clair que moi dans les explication c'est pas pour rien :lol:

en ce qui concerne un tutorial sur les sessions tu en trouvera sur php-debutant ou devellopez.com voir même si j'ai bonne mémoire en consultant la FAQ de ce forum ...

:arrow: tu pourras voir que c'est pas si compliqué a construire une gestion utilisateur...

et pour répeter entre guillemet ce q'ua si bien dis cyrano pour la restriction genre administrateur: tu fais comme ceci en début de page pour exemple admin.php:

0=visiteurs
1=admin
2=modo
3=membre

session_start()

if ($session['rang']==1){

//blablabla

}else{

(header location:index.php);
}

par Cyrano » 07 sept. 2006, 10:27

Je vais simplifier, tu vas voir que ce n'est pas particulièrement sorcier. Il y a un tuto sr le site de PHPFrance et il doit y en avoir aussi sur phpdebutant ou le site du zéro. Mais les bases fondamentale:

Au chargement d'une page, la toute première instruction sera session_start() avant le moindre bout de code html.

À partir de là, tu disposes d'une variable super-globale $_SESSION qui est un tableau. il te reste à initialiser la valeur et tu peux par exemple créer une variable de session simplement en faisant :
<?php
session_start();
//... du code ...
$_SESSION['niveau_acces'] = "ABCD";
// ... etc...
?>
Au chargement d'une page, tu peux tester la valeur de cette variable sur simple appel et ouvrir ou non la page :
<?php
session_start();
if($_SESSION['niveau_acces'] == "ABCD")
{
    // Le niveau est bon, on affiche le contenu normal
    // code normal de la page
}
else
{
    // Le niveau ne correspond pas, on redirige vers la page d'identification.
    header("./identification.php");
}
?>
Bien entendu, ce sont des exemples très basiques, tu peux améliorer à l'envi.

par Aude » 07 sept. 2006, 10:16

Merci beaucoup pour toutes ses explications.

Encore une dernière question, est-ce que tu saurais ou je pourrais trouver un tutorial bien expliqué sur les sessions.

merci pour tout

par Cyrano » 07 sept. 2006, 09:28

Ce n'est pas un problème et précisément, l'accès géré par session te donne la souplesse nécessaire : tous les utilisateurs accèdent à MySQL sans devoir s'identifier eux-même : les paramètres de connexion à MySQL sont les mêmes pour tous.

En revanche, il te faut arriver à modéliser la manière de gérer l'ajout des niveaux d'accès. Si un nouvel utilisateur est inscrit avec des paramètres complètement différens de l'existant, il faut alors savoir à quelles pages il pourra accéder. Si tu bloques l'accès à certaines tables sans bloquer l'accès aux pages utilisant ces mêmes tables, tu vas avoir des erreurs à n'en plus finir. Donc la méthode qui me semblerait la plus appropriés, ce serait d'avoir un systeme de tableau indiquant pour chaque page quelles tables sont utilisées. il te faut ensuite un système pour définir qui accède ou non à quelle page avec un genre de code. À partir de là, pour chaque utilisateur, en limitant l'accès à certaines tables, tu peux par voie de conséquence définir à quelles pages il peut ou non accéder.

Il faut un système suffisament générique pour prévoir toutes les possibilités sans devoir toucher au code à chaque ajout d'un utilisateur. C'est l'administrateur général qui va gérer sur la base de listes déroulantes ou de cases à cocher par exemple pour créer un nouveau profil.