8791 sujets

Développement web côté serveur, CMS

Bonjour et Bonne Année 2011 à tous d'Alsacréations !

Je m'intérroge sur la nécessité de mettre en place le procédé des sessions
session start(), ou session readonly(),

pour un espace membre tout simple décrit de la façon suivante :

un index.php qui contient :un formulaire d'authentification du membre

2 cas :

1/ si le membre authentifié et reconnu > affichage des infos /images/pdf à télécharger/vidéos à visionner (stockés en bdd sql) dans le meme index,

2/ si membre non reconnu > affichage d'un message "vous n'êtes pas abonnée...".

L'aspect sécurité qui m'importe est de pouvoir interdire l'accès au documents téléchargeables (pdf) dans le cas où un membre envoie par email l'url à une bonne amie !!!!

Merci à l'avance car vraiment je sèche !
Vos conseils et vos pistes sont les bienvenus.
Modifié par bouzette (04 Mar 2011 - 14:01)
Il est tellement simple d'utiliser les sessions que je ne vois pas l'intérêt de ne pas s'en servir dans ton cas. Accessoirement tu pourrais utiliser des cookies mais ça n'apportera rien en termes de rapidité de mise en place et serai même moins sécurisant pour toi.
Bonjour !
Ta réponse est un tantinet désinvolte puisque ça te paraît si simple ...

De plus, elle ne m'apporte aucunes pistes ni conseils de sécurité notamment dans le cas :

tranmission de l'url de l'espace restreint une fois l'abonnée connectée
via un email
en conclusion : la protection des informations de l'espace restreint en est remise en cause, puisque pas si fiable si le membre "néglige" de se déconnecter.

Rien que sur ce point, mon enthousiasme est plus que frais à mettre en place le procédé de session.
Modérateur
Bonjour Bouzette,

Dans ton cas, tu dois utiliser les sessions, c'est ce qu'il y a de mieux. Lorsque l'utilisateur s'identifie, cela lui crée un cookie qui relie son navigateur à la session sur le serveur. S'il transmet l'url à un individu, comme le navigateur de l'individu ne possède pas le cookie de session, il n'aura pas accès à la page.

Pour résumer en quelques mots : une session est reliée à un navigateur Web. Bon, ce n'est pas tout à fait exact, mais c'est pour vulgariser tout ça.
Modifié par Tony Monast (01 Feb 2011 - 00:19)
Modérateur
J'ai oublié de mentionner que les identifiants de session peuvent être stockés dans un cookie ou transmis via l'url ou les formulaires. Il est recommandé de réaliser son application pour que les identifiants soient uniquement stockés dans un cookie, et jamais transmis par l'url ou les formulaires. Notamment pour permettre à l'utilisateur de partager l'url sans compromettre la sécurité de sa session.
Salut Bouzette,
Excuses moi si ma réponse te paraît désinvolte... j'ai supposé que tu savais déjà un peu de quoi tu parlais... j'ai du lire trop vite Smiley smile

bouzette a écrit :
pour un espace membre tout simple...


Donc pour reprendre ce que dit Tony Monast, il faut effectivement utiliser les sessions pour restreindre l'accès à un utilisateur identifié et à son navigateur.

Quand je dis que c'est simple c'est parceque la mise en place est effectivement simple, voici un exemple de fonctionnement :

- le visiteur rempli le formulaire avec son couple login/pass et le soumet
- le script de destination du formulaire vérifie qu'il s'agit bien d'un utilisateur enregistré :
- Si oui : enregistrer une variable dans la session puis rediriger vers la page sécurisée
- Si non : retour au formulaire

Au niveau de la page sécurisée il suffit de vérifier la présence de la variable stockée dans la session et agir en conséquence :

- session inexistante ou erronée : redirection vers le formulaire de login
- session OK : accès autorisé Smiley smile
Bonjour,

Merci à vous Tony , Nukleo.

Effectivement, sessions + cookies sont mises en place. Cela fonctionne impec même si une abonnée communique l'url à une tierce personne, l'affichage que du formulaire et non du contenu de l'espace abonnées.

Par contre j'ai véritablement un souci de sécurité pour le pdf publié dans la rubrique.
ma connaissance du .htacess étant très limitée.

mon code écrit (ci-dessous) dans le .htacess pour protéger le répertoire pdf ne permet pas l'affichage et donc le téléchargement réservé exclusivement aux abonnées :

RewriteEngine On
RewriteRule ^.*\.pdf$ /foo [F]
RewriteRule ^.*\.PDF$ /foo [F]
RewriteRule ^.*\.Pdf$ /foo [F]
RewriteRule ^.*\.pDf$ /foo [F]
RewriteRule ^.*\.pdF$ /foo [F]


Auriez-vous quelques pistes sur cet aspect ?
Merci d'avance
Modifié par bouzette (04 Mar 2011 - 13:49)
Modérateur
Bonjour,

Tu dois créer une page PHP qui reçoit en paramètre le nom du fichier à télécharger. Le code PHP de cette page ira récupérer le document PDF demandé dans un dossier non accessible par http et le livrera au navigateur.

1. Cette page PHP devra vérifier que l'utilisateur est identifié
2. Tu dois t'assurer que l'utilisateur peut uniquement récupérer les PDF du dossier, et aucun autre fichier en modifiant le paramètre.

Tu peux jeter un oeil à la fonction header. Il y a un exemple un peu plus bas.
Modifié par Tony Monast (28 Feb 2011 - 20:40)
bouzette a écrit :
Bonjour,

Merci à vous Tony , Nukleo.

Effectivement, sessions + cookies sont mises en place. Cela fonctionne impec même si une abonnée communique l'url à une tierce personne, l'affichage que du formulaire et non du contenu de l'espace abonnées.

voir l'espace abonnées :

Par contre j'ai véritablement un souci de sécurité pour le pdf publié dans la rubrique.
ma connaissance du .htacess étant très limitée.

mon code écrit (ci-dessous) dans le .htacess pour protéger le répertoire pdf ne permet pas l'affichage et donc le téléchargement réservé exclusivement aux abonnées :

RewriteEngine On
RewriteRule ^.*\.pdf$ /foo [F]
RewriteRule ^.*\.PDF$ /foo [F]
RewriteRule ^.*\.Pdf$ /foo [F]
RewriteRule ^.*\.pDf$ /foo [F]
RewriteRule ^.*\.pdF$ /foo [F]


Auriez-vous quelques pistes sur cet aspect ?
Merci d'avance
Modérateur
Bonjour bouzette,

As-tu lu ma réponse?

Bien que je ne travaille pas avec le PHP ou les fichiers htaccess, je ne crois pas que tu puisses accéder aux variables de session PHP via htaccess. Il faudra procéder de la façon que j'ai mentionné.