Ciao a tutti, è la prima volta che mi imbatto nell'implementazione di uno script che permetta agli utenti di fare l'upload di immagini...
Sto utilizzando UberUploadCropper e volevo sapere quali sono i controlli di sicurezza PHP necessari per evitare il caricamento di shell (c99/r57 le più comuni) o comunque cose che possano fare danni seri..
Purtroppo non saprei da dove cominciare quindi attendo i vostri,sempre preziosissimi, consigli...
Vi posto il codice del file che viene richiamato dalla funzione asincrona:
upload.php
Codice PHP:
define('DS', DIRECTORY_SEPARATOR);
define('CURR_DIR', dirname(__FILE__) . DS);
define('UPLOAD_DIR', CURR_DIR . "uploads". DS);
require "../scripts".DS."fileuploader".DS."fileuploader.php";
$allowedExtensions = array('jpeg','jpg','gif','png','tiff','bmp');
$sizeLimit = 2 * 1024 * 1024; // max file size in bytes
$uploader = new qqFileUploader($allowedExtensions, $sizeLimit);
$result = $uploader->handleUpload(UPLOAD_DIR, false, md5(uniqid()));
require "gd_image.php";
$gd = new GdImage();
// step 1: make a copy of the original
$filePath = UPLOAD_DIR . $result['filename'];
$copyName = $gd->createName($result['filename'], '_FULLSIZE');
$gd->copy($filePath, UPLOAD_DIR.$copyName);
// step 2: Scale down or up this image so it fits in the browser nicely, lets say 500px is safe
$oldSize = $gd->getProperties($filePath);
$newSize = $gd->getAspectRatio($oldSize['w'], $oldSize['h'], 500, 0);
$gd->resize($filePath, $newSize['w'], $newSize['h']);
// to pass data through iframe you will need to encode all html tags
echo json_encode($result);exit();
Vi ringrazio anticipatamente!!!!