Securiser l'upload du fichier [Résolu]

Messages postés
54
Date d'inscription
lundi 10 décembre 2018
Statut
Membre
Dernière intervention
25 novembre 2019
-
Bonjour , je veux sécuriser l'upload de mes fichiers en php pdo mais je ne sais pas comment.


<?php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Credentials: true ");
header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS, FILES');
header("Access-Control-Allow-Headers: X-Custom-Header, Origin, Content-Type , Authorisation , X-Requested-With");
header("Content-Type: application/json; charset=UTF-8 ");
header("Referrer-Policy: origin-when-cross-origin");
header("Expect-CT: max-age=7776000, enforce");
header('Strict-Transport-Security: max-age=16070400; includeSubDomains');
header('X-XSS-Protection: 1; mode=block');
header('X-Content-Type-Options: nosniff');
header('X-Frame-Options: SAMEORIGIN');



$target_dir = "../../Meslek/MeslekCombat/src/assets/uploads/";
$target_file = $target_dir . basename($_FILES["image"]["name"]);
$target_file_video = $target_dir . basename($_FILES["video"]["name"]);



function conn()
{
  try{
  $bdd =new PDO('mysql:host=localhost; dbname=meslek; charset=utf8', 'root', '');
  $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 
} catch(PDOException $e) {
    die('Erreur : ' . $e->getMessage());
}
 return $bdd;
}

$categorie =    htmlspecialchars($_POST['categorie'], ENT_QUOTES);
$titre =      htmlspecialchars($_POST['titre'], ENT_QUOTES);


if ( empty($titre) || empty($categorie)   ) {
    echo json_encode(false);
    die;
} else {

if(!empty($_FILES["image"])){
    move_uploaded_file($_FILES["image"]["tmp_name"], $target_file);   
    $photo = basename( $_FILES["image"]["name"]);
}

if(!empty($_FILES["video"])){
    move_uploaded_file($_FILES["video"]["tmp_name"], $target_file_video);   
    $video = basename( $_FILES["video"]["name"]);
}


$db = conn();


/*if (empty($_FILES["image"])){
    $photo = "none";
}

$prepred = $db->prepare("INSERT INTO produit (categorie, marque, prix, couleur, qte, niveau, photo) VALUES(?,?,?,?,?,?,?)");
$prepred->execute([$category, $marque, $prix, $couleur, $qte, $niveau, $photo]);*/

echo json_encode(true);
}


?>

Afficher la suite 

1 réponse

Messages postés
26969
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
7 décembre 2019
1918
0
Merci
Bonjour,

Commence par appliquer ceci : http://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs
(n'oublie pas de mettre CHAQUE requete dans un bloc try/catch )

Et faudrait également nous détailler le souci rencontré...
<<sécuriser en pdo>>..ça ne veut pas dire grand chose
LearnDeep
Messages postés
54
Date d'inscription
lundi 10 décembre 2018
Statut
Membre
Dernière intervention
25 novembre 2019
-
le problème est comment garantir la sécurité des fichiers transférés au serveurs $_FILES["video"], $_FILES["image"], comment les proteger et mettre les extensions et la taille amaximale etc ...
jordane45
Messages postés
26969
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
7 décembre 2019
1918 > LearnDeep
Messages postés
54
Date d'inscription
lundi 10 décembre 2018
Statut
Membre
Dernière intervention
25 novembre 2019
-
ça n'a donc aucun rapport avec PDO...

et... visiblement tu n'as pas dû chercher beaucoup avant de venir poster ta demande ici...
Voici de quoi t'orienter :
https://antoine-herault.developpez.com/tutoriels/php/upload/
LearnDeep
Messages postés
54
Date d'inscription
lundi 10 décembre 2018
Statut
Membre
Dernière intervention
25 novembre 2019
-
merci
Commenter la réponse de jordane45