Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Tempo caricamento immagine

    Ciao, sto cercando il modo più leggere di far visualizzare delle immagini, dato che ce ne saranno molte per ogni pagina. In più devo evitare di far vedere il vero percorso delle immagini agli utenti, ho pensato a 2 soluzioni, una è quella di mettere un file php nell'attributo src del tag img in questo modo src="file.php?img=cart2/file.jpg" e il file php contiene questo
    Codice PHP:
    header('Content-Type: image/jpeg');
    header('Content-Length: '.filesize('immagini/'.$_GET['file']));
    readfile('immagini/'.$_GET['file']); 
    in questo modo l'utente vede solo la cartella cart2 che in realtà non esiste nel percorso in cui viene richiamato. Ovviamente il file php lo integro con altri controlli.

    L'altra soluzione è quella di utilizzare mod_rewrite, richiamo la foto in questo modo src="cart2/foto2.jpg" e nel file htaccess ho messo questo
    RewriteRule ^([^/]+)/([^/]+)(.jpg) immagini/$1/$2$3 [L]

    Tutti e due fanno quello che mi aspetto, e sembra che il secondo metodo sia anche più veloce nel caricamento. Voi che ne dite, è corretto come sistema? Oppure c'è altro per evitare di far vedere il percorso completo delle foto?

  2. #2
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Prima cosa, usare $_GET così possa essere un pò pericoloso, basta indovinare un pochino e ci avrò il tuo /etc/passwd

    codice:
    file.php?img=../../../../etc/passwd

    Comunque, il modo migliore per nasconderlo sarebbe probabilmente usare un id, ma poi hai bisogno di una tabella che serve come mapping. Se no, penso io sceglierei mod_rewrite.

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  3. #3
    Originariamente inviato da neroux
    Prima cosa, usare $_GET così possa essere un pò pericoloso, basta indovinare un pochino e ci avrò il tuo /etc/passwd

    codice:
    file.php?img=../../../../etc/passwd

    Comunque, il modo migliore per nasconderlo sarebbe probabilmente usare un id, ma poi hai bisogno di una tabella che serve come mapping. Se no, penso io sceglierei mod_rewrite.
    Quando passo i valori in get faccio dei controlli, passo altri valori che mi permette di impostare una cartella impostata da me e di controllare se esiste il file, per esempio

    file.php?img=file.jpg&type=2

    in file.php

    if($_GET['type']==2){
    if(file_exist('mia_cart/'.urldecode($_GET['img'])))
    ...
    }

    questo è solo un piccolo controllo, in un vecchio sistema passavo anche dei valori in md5 che poi ricontrollo per vedere se quello che arriva è corretto e non modificato

    Comunque grazie del consiglio.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.