Securiser l'upload du fichier

Résolu
LearnDeep Messages postés 70 Statut Membre -  
LearnDeep Messages postés 70 Statut Membre -
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 40050 Statut Modérateur 4 756
 
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 70 Statut Membre
 
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 40050 Statut Modérateur 4 756 > LearnDeep Messages postés 70 Statut Membre
 
ç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 70 Statut Membre
 
merci
0