Securiser l'upload du fichier

Résolu/Fermé
LearnDeep Messages postés 67 Date d'inscription lundi 10 décembre 2018 Statut Membre Dernière intervention 21 août 2021 - Modifié le 17 nov. 2019 à 20:04
LearnDeep Messages postés 67 Date d'inscription lundi 10 décembre 2018 Statut Membre Dernière intervention 21 août 2021 - 18 nov. 2019 à 13:06
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);
}


?>

A voir également:

1 réponse

jordane45 Messages postés 38168 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 8 mai 2024 4 659
17 nov. 2019 à 20:57
Bonjour,

Commence par appliquer ceci : https://forums.commentcamarche.net/forum/affich-37584941-php-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
0
LearnDeep Messages postés 67 Date d'inscription lundi 10 décembre 2018 Statut Membre Dernière intervention 21 août 2021
17 nov. 2019 à 21:20
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 ...
0
jordane45 Messages postés 38168 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 8 mai 2024 4 659 > LearnDeep Messages postés 67 Date d'inscription lundi 10 décembre 2018 Statut Membre Dernière intervention 21 août 2021
17 nov. 2019 à 21:29
ç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/
0
LearnDeep Messages postés 67 Date d'inscription lundi 10 décembre 2018 Statut Membre Dernière intervention 21 août 2021
18 nov. 2019 à 13:06
merci
0