Partage

Comment protéger admin avec htaccess

si mes page sont afficher avec index.php?action=

18 juin 2018 à 14:45:12

Bonjour,

Je vous demande votre aide, car je suis en train de suivre le tuto php et je me suis rendu compte que ma zone d'administration n'est plus protégée grâce à mon .htaccess.

Avant mes pages étaient protégées, mais affichées comme ça : /admin/ajouter_billet.php

Par la suite dans le tuto, les pages sont affichées grâce à la méthode index.php?action=

Mais c'est là que je ne comprends pas comment dire au htaccess de protéger le chemin pour ajouter un billet : index.php?action=ajouter_billet)

Comment puis-je protéger tout ça ?

Merci d'avance pour votre aide :)

-
Edité par Stymphale 21 juin 2018 à 14:31:52

Vous êtes demandeur·se d'emploi ?
Sans diplôme post-bac ?

Devenez Développeur·se web junior

Je postule
Formation
courte
Financée
à 100%
18 juin 2018 à 17:13:55

Bonjour à toi :)

Changement de méthode = changement de protection ;)

Quand tu définis une "zone" administration qui se présente sous la forme d'un dossier /admin, la protection .htaccess est adaptée car elle permet de bloquer très simplement l'accès à un dossier et à tout ce qu'il contient.

Quand tout est exécuté "au même niveau" (c'est à dire sans changement de dossier), la méthode .htaccess reste possible mais devient beaucoup moins adaptée. Il faudrait par exemple utiliser les expressions régulières pour tester la présence de "admin" dans l'URL par exemple, et bloquer tout ce qui contient "admin".

Mais l'avantage de la méthode index.php?action=cequetuveux, c'est que tu peux au niveau de ton code HTML prévoir une surveillance et un mécanisme de contrôle sur "cequetuveux". Tu peux exiger par exemple qu'une $_SESSION existe et qu'une variable stockée, par exemple $_SESSION['type'] soit égale à "admin". Si tel est le cas, tu laisses faire... Si tel n'est pas le cas, par exemple avec type qui est égal à "membre"... tu peux bloquer l'action, lancer une redirection, afficher une page de connexion où que sais-je encore.

Donc ce qu'il faut que tu apprennes cette fois, c'est comment gérer une $_SESSION et comment t'en servir pour gérer un mécanisme de connexion. Ta première tentative peut être toute bête et "simple", il suffit de faire une simple formulaire demandant un login et un mot de passe. Lors de la validation tu vérifies par deux conditions que login et mot de passe sont bons. Tu peux alors écrire $_SESSION['type'] = 'admin'. Et pour toutes les actions que tu veux protéger, tu commences par un if ( $_SESSION['type'] == 'admin' ) ....... puis else { echo "action interdite"; } par exemple ;)

Voilà quelques idées :) Découvre bien les joies des sessions !

-> Ressource sur les sessions : https://openclassrooms.com/courses/concevez-votre-site-web-avec-php-et-mysql/session-cookies

Nicolas - Développeur PHP qui bricole pas mal, utilisant Bootstrap, Materialize, MySQL et quelques astuces piochées par ci par là. Codeigniter a changé ma vie de codeur :D
21 juin 2018 à 14:30:27

A ok ! C'est aussi simple ! Je pensai qu'il y avait un truc spécial à faire dans le .htaccess.

Je vais regarder tout ça, mais aillant déjà un module de connexion ça ne devrait pas me poser de problèmes :)

Merci !

Comment protéger admin avec htaccess

× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
  • Editeur
  • Markdown