IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Securiser suppression d'un fichier avec balise A + php


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2012
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Novembre 2012
    Messages : 50
    Points : 29
    Points
    29
    Par défaut Securiser suppression d'un fichier avec balise A + php
    Bonjour,

    Je me permet de vous solliciter à ce jour car j'avais besoin de vos lumières, je m'en explique :

    J'ai fait une page PHP + HTML qui m'affiche des photos, et à coté de chaque photo j'ai une petite image pour supprimer cette photo.
    Quand je clique sur la petite image qui me permet de supprimer la photo, ça fait appel à cette même page en remplissant

    Edit.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    //Partie formulaire
    foreach($PhotosMoulin as $photo)
    	{
    		echo "<div id='photomoulin'>";
    		echo "<a href='edit.php?idmoulin=".$IDMoulin."&idphoto=".$photo[IDPhoto]."'><img src='images/trash.png' height='20' width='20'></a>";
    		echo "<a href='".$photo[Path]."' target=_blank><img src='".$photo[Path]."' height='150' width='150'></a>";
    		echo "</div>";
    	}
    //Partie traitement suppression photo
    //Suppression de photos si idphoto existe
    if(isset($_GET['idphoto'])) {
    	$IDPhoto = $_GET['idphoto'];
    	//On recupere le path de la photo avec l'IDPhoto
    	$sql = 'SELECT Path FROM Photos WHERE IDPhoto='.$IDPhoto;
    	$e = $bdd->prepare($sql);
    	$e->execute(array('Path'));
    	$result = $e->fetch(PDO::FETCH_ASSOC);
    	$PathPhoto = $result['Path'];
     
    	//Suppression photo dans la BDD
    	$bdd->query('DELETE FROM PhotoMoulin WHERE IDPhoto ='.$IDPhoto);
    	$bdd->query('DELETE FROM Photos WHERE IDPhoto ='.$IDPhoto);
    	//Supression du fichier
    	unlink($PathPhoto);
    	//redirection vers la page d'edition du moulin
    	header('Location: edit.php?idmoulin='.$IDMoulin);
    }
    else {
     
    }
    Mon problème est que au final j'utilise la méthode GET pour la suppression de fichier, mais une personne mal intentionnée peut juste changer la valeur dans l'url (http://127.0.0.1/edit.php?idmoulin=84&idphoto=25) et me supprimer toutes les photos...donc ce n'est pas du tout sécurisé. La méthode POST me permettrait de pouvoir cacher l'URL mais à ma connaissance il est impossible de transmettre des données via une balise A. Est-ce bien le cas ?

    Et je ne veux pas passer par un formulaire car au dessus de mes photos j'ai déjà un autre formulaire, donc 2 formulaires dans une même page ça ,e serait pas l’idéal.

    Avez vous une idée pour sécuriser la suppression de photos svp ?

    Merci par avance pour vos avis.

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 237
    Points : 15 534
    Points
    15 534
    Par défaut
    Je suppose que vous avez déjà une système de connexion avec mot de passe pour vérifier qui peut modifier les informations ?
    Dans ce cas vous pouvez faire la même vérification avant de supprimer le fichier.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Novembre 2012
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Novembre 2012
    Messages : 50
    Points : 29
    Points
    29
    Par défaut
    Citation Envoyé par mathieu Voir le message
    Je suppose que vous avez déjà une système de connexion avec mot de passe pour vérifier qui peut modifier les informations ?
    Dans ce cas vous pouvez faire la même vérification avant de supprimer le fichier.
    Bonjour,

    Non je n'ai pas de systéme de connexion avec login/password (du moins pas encore).

    Je ne vois pas vraiment quel système de vérificationje pourrais faire à vrai dire, remarque je pourrais faire une vérif au niveau de l'IDPhoto pour savoir si il correspond bien à mon IDMoulin mais alors un utilisateur mal intentionné pourra quand même faire du brute force et me supprimer toutes les photos liées à mon moulin

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 237
    Points : 15 534
    Points
    15 534
    Par défaut
    Je n'ai pas compris la différence entre les photos que l'utilisateur a le droit de supprimer et les photos qui sont supprimées suite à une action "mal intentionnée" ?

  5. #5
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Sans système de permissions et de droits utilisateurs (à base de mot de passe et de cookies par exemple), il est tout simplement impossible de sécuriser ton formulaire. Même la méthode post n'est pas sécurisé, n'importe qui peut utiliser une extension Chrome pour lancer la requête.

    L'alternative est de ne pas utiliser d'id numériques successives et d'utiliser un système d'UUID.
    Tu peux en plus ne pas physiquement supprimer les fichiers du serveur et tout simplement les marquer comme supprimés dans la table. Ça te permettra également de proposer une fonction "annuler" à la suppression si tu veux.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Novembre 2012
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Novembre 2012
    Messages : 50
    Points : 29
    Points
    29
    Par défaut
    Citation Envoyé par mathieu Voir le message
    Je n'ai pas compris la différence entre les photos que l'utilisateur a le droit de supprimer et les photos qui sont supprimées suite à une action "mal intentionnée" ?

    Bonjour,

    en fait quand je clique sur l’icône à coté de ma photo ça me supprime la photo en faisant appel à une URL du type : http://127.0.0.1/edit.php?idmoulin=84&idphoto=25

    un utilisateur mal intentionné peut tout simplement me supprimer toutes mes photos en changeant la valeur de idphoto=25 dans l'URL et donc me supprimer toutes mes photos.
    Pour palier à ce problème j'ai fait une vérification avant la suppression pour s'assurer que l'idphoto est bien lié à l'idmoulin donc ça limite la casse

    Citation Envoyé par Tsilefy Voir le message
    Sans système de permissions et de droits utilisateurs (à base de mot de passe et de cookies par exemple), il est tout simplement impossible de sécuriser ton formulaire. Même la méthode post n'est pas sécurisé, n'importe qui peut utiliser une extension Chrome pour lancer la requête.

    L'alternative est de ne pas utiliser d'id numériques successives et d'utiliser un système d'UUID.
    Tu peux en plus ne pas physiquement supprimer les fichiers du serveur et tout simplement les marquer comme supprimés dans la table. Ça te permettra également de proposer une fonction "annuler" à la suppression si tu veux.
    Bonne idée je n'y avais pas pensé

    On peut dire que le sujet est clos.

    Et merci à vous encore une fois.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Suppression d'un fichier avec AWK
    Par turbo_chess dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 02/02/2010, 15h54
  2. gérer l'erreur lors de suppression d'un fichier avec la commande KILL
    Par samus535 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 22/12/2009, 09h57
  3. Pb de suppression d'un fichier avec la méthode File.delete()
    Par benzing dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 21/01/2006, 15h48
  4. Réponses: 2
    Dernier message: 18/07/2005, 11h58
  5. Réponses: 8
    Dernier message: 14/11/2003, 22h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo