8722 sujets

Développement web côté serveur, CMS

Bonjour, dernier aide et problème après j'ai fini mon projet d'exam youpiii !

J'ai un site vitrine administrable en crud. Lorsque que je tape monsite.dev/modif je tombe sur mon formulaire de connexion (login + pass). Ici tout vas bien je me connecte et j'arrive sur mon tableau d'administration qui comporte plusieurs pages de modifications (photo, texte etc....)

Mon problème c'est que mon site n'est pas sécurisé. Sans passé par la page de connexion si je fais monsite.dev/modif/modifphoto on atterrit directement sur le formulaire de modification photo sans passé par un pass ou une page bloqué. Facilement piratable.


Je suis complètement bloqué


Voici mon code:


modifphoto.php

<?php
require_once('fonctions.php');


if(!empty ($_GET['action']) && ($_GET['action'] == 'delete') && (!empty($_GET['id']))){


deletegalerie();
}


$tailleMax = 1 * 1000000; // 1 mo
$tailleMaxAffichee = $tailleMax." 1 Mo";

// fonction d'upload des flyers 
imagegalerie();

// fonction de récupération des flyers
$liste = getGalerie();


if(!empty($_GET["create"]) && $_GET["create"] == "ok") {
  echo "<span class='customnewsletter'>Image bien registré !</span>";
}

if(!empty($_GET["supp"]) && $_GET["supp"] == "ok") {
  echo "<span class='customnewsletter'>Image bien supprimé !</span>";
}

?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="css/style.css">
 <title>Stock d'images</title>
</head>
<body>



<div class="flyerhome">
  <h1>ENVOIE IMAGE GALERIE MEDIA</h1>
</div>



<div class="listeconcert"/>
  <h2>Images</h2>
</div>

<div class="flyer">

     <ul>
     <?php
     // Liste des images existantes

     while($illus = $liste->fetch()):
       // Affichage de l'image à chaque tour de boucle
       echo "<li>
        <img src='http://hardup.dev/modif/uploads/large-".$illus["urlgalerie"]."' alt=''>
        <br>
        <br>
         <a href='http://hardup.dev/modif/modifgalerie.php?action=delete&id=".$illus["idgalerie"]."'>Supprimer l'image</a>
       </li>";
     endwhile;
     ?>
 </ul>
</div>






Fonction de vérif session, index.php

function verifSession() {
  // Si on n'a pas de session ou si $_SESSION["log"] est différent de "OK" ou si le token en Session n'est pas le même que celui généré (vol de session), on déconnecte.
  if(!isset($_SESSION["log"]) || $_SESSION["log"] != "OK" || $_SESSION["token"] != generationToken()) {
    deconnexion();
  }
}

/*
Fonction permettant de générer une signature (token) propre à chaque utilisateur en fonction de variables d'environnement de sa connexion (adresse IP et user Agent).
*/
function generationToken() {
  $adresseIP = $_SERVER["REMOTE_ADDR"];
  $userAgent = $_SERVER['HTTP_USER_AGENT'];
  $token = $adresseIP.$userAgent;
  return md5($token);
}

/*
Fonction permettant de déconnecter un utilisateur en supprimant sa session et en vidant les variables liées.
*/
function deconnexion($mess = "prive") {
  session_destroy();
  $_SESSION = array();
  header("location:index.php?mess=".$mess);
  exit;
}

Modifié par mvc (29 Jun 2017 - 10:30)
tu as oublié de démarrer ta session avec session_start() et tu as oublié d'appeler ta fonction verifSession()
Donc forcément... Smiley lol