Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente | |||
formations:devweb_secu [16/10/2018 10:43] – ↷ Nom de la page changé de formations:devweb_3 à formations:devweb_secu rgrondin | formations:devweb_secu [13/05/2019 07:12] (Version actuelle) – ↷ Liens modifiés en raison d'un déplacement. 87.250.224.123 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== Sécurisation d'une ou plusieurs pages ====== | ||
+ | ===== Prérequis ===== | ||
+ | Avoir les logiciels présentés sur [[formations: | ||
+ | |||
+ | ====== TP 2 : Sécurisation d'une ou plusieurs pages ====== | ||
+ | |||
+ | ===== Un petit point sur les autorisations des fichiers ===== | ||
+ | Sur tous les systèmes linux, les fichiers disposent de plusieurs propriétés pour définir qui a le droit d'en faire quoi : | ||
+ | * **Les propriétaires :** chaque fichier est possédé par un utilisateur et un groupe. La notation est **utilisateur: | ||
+ | * Chaque fichier dispose d' | ||
+ | * **Lecture** : Le droit de lire le fichier tout simple | ||
+ | * **Écriture** : Le droit de modifier les fichiers ou d'en créer de nouveaux. | ||
+ | * **Exécution** : Le droit d' | ||
+ | * La notation est donc **rwxrwxrwx** pour read, write, et eXec, avec les 3 groupes différents. **rwx------** signifie que vous êtes les seuls à avoir tous les droits sur les fichiers | ||
+ | |||
+ | Un très bon résumé des droits sur les systèmes linux : [[http:// | ||
+ | |||
+ | <note tip>Par défaut à Centrale les fichiers appartiennent à utilisateur: | ||
+ | |||
+ | <note important> | ||
+ | ===== Protection par le serveur Web ===== | ||
+ | |||
+ | ==== Avec du .htaccess et du .htpasswd ==== | ||
+ | Ce type de protection fonctionne pour protéger tout un dossier avec un nom d' | ||
+ | |||
+ | Il faut créer deux fichiers dans le dossier : | ||
+ | <file apache .htaccess> | ||
+ | AuthName " | ||
+ | AuthType Basic | ||
+ | AuthUserFile "/ | ||
+ | Require valid-user | ||
+ | </ | ||
+ | |||
+ | <note warning> | ||
+ | |||
+ | <file apache .htpasswd> | ||
+ | nomdutilisateur1: | ||
+ | nomdutilisateur2: | ||
+ | </ | ||
+ | |||
+ | <note tip>Pour crypter les mot de passes, il faut utiliser la fonction **crypt** de php</ | ||
+ | Un script simple pour les crypter : | ||
+ | |||
+ | <file php cryptage.php> | ||
+ | <?php echo crypt(' | ||
+ | </ | ||
+ | |||
+ | Et même pour en faire plusieurs à la suite : | ||
+ | <file php cryptage.php> | ||
+ | <?php | ||
+ | if(isset($_POST[' | ||
+ | echo crypt($_POST[' | ||
+ | } | ||
+ | ?> | ||
+ | <form method=" | ||
+ | </ | ||
+ | ==== Avec CAS ==== | ||
+ | <note important> | ||
+ | Encore plus simple, il suffit de rajouter ça dans un fichier .htaccess à la racine du dossier à protéger : | ||
+ | |||
+ | <file apache .htaccess> | ||
+ | AuthType cas | ||
+ | Require valid-user | ||
+ | </ | ||
+ | |||
+ | <note tip>Tous les centraliens auront donc accès à cette page mais il existe une ruse rusée pour controller un peu les accès... </ | ||
+ | |||
+ | Dans vos fichiers php, vous avez accès à l' | ||
+ | |||
+ | <file php index.php> | ||
+ | <?php | ||
+ | if(!isset($_SESSION[' | ||
+ | exit(' | ||
+ | } | ||
+ | ?> | ||
+ | |||
+ | ... Un contenu hyper secret | ||
+ | </ | ||
+ | ===== Protection depuis le script ===== | ||
+ | Plusieurs méthodes possible : | ||
+ | |||
+ | ==== Protéger avec un mot de passe ==== | ||
+ | Il existe plusieurs approche pour le faire mais le plus simple doit être avec une page de connexion, et des sessions pour enregistrer un utilisateur connecté. | ||
+ | |||
+ | On va utiliser une variable de session **$_SESSION[' | ||
+ | |||
+ | <file php connexion.php> | ||
+ | <?php | ||
+ | session_start(); | ||
+ | $mdp_crypte = ' | ||
+ | |||
+ | if(isset($_POST[' | ||
+ | | ||
+ | } | ||
+ | |||
+ | if(isset($_SESSION[' | ||
+ | header(' | ||
+ | exit; | ||
+ | } | ||
+ | |||
+ | if(isset($_POST[' | ||
+ | |||
+ | ?> | ||
+ | |||
+ | <form method=" | ||
+ | Mot de passe : <input type=" | ||
+ | |||
+ | <input type=" | ||
+ | </ | ||
+ | |||
+ | |||
+ | </ | ||
+ | |||
+ | <file php secret.php> | ||
+ | <?php | ||
+ | session_start(); | ||
+ | $mdp_crypte = ' | ||
+ | |||
+ | if(!isset($_SESSION[' | ||
+ | header(' | ||
+ | exit; | ||
+ | } | ||
+ | |||
+ | ?> | ||
+ | |||
+ | Contenu secret... | ||
+ | |||
+ | </ | ||
+ | ==== Protéger avec des accès utilisateurs (login/mot de passe) ==== | ||
+ | |||
+ | ==== Protéger avec CAS mais depuis le script ==== |