Salve a tutti.
Scrivo qui, ma non so se sia la sezione appropriata.
Sono appena un novizio in fatto di php. Per Joomla ho realizzato plugin semplici (per uso personale e quindi su tabelle create direttamente nel db) che interagiscono col db, ma nulla di più.
Ora voglio passare a cose un pochino più complesse, creando per esempio una componente che consenta di uploadare immagini dal back-end ed applicare un effetto di watermark (cioè sovrapporre un logo png o gif all'immagine originale).
Sto mettendo insieme i pezzi del puzzle e sto cercando di imparare. Sapendo che il discorso sicurezza è fondamentale ho cercato in rete come effettuare un upload in php in sicurezza. Tra i tanti risultati, questa guida -gratuita- mi è parsa forse quella che ne parla meglio (
link in inglese,
traduzione in italiano ).
Quindi credo di dover fare l'equivalente utilizzando se possibile funzioni di joomla, come JFile.
Da questa guida
mi pare emerga che:
-si deve controllare l'estensione del file
-cercare di controllare che l'header Content‐Type corrisponda quello di un'immagine non è sufficiente.
-l'immagine deve essere inserita in una cartella diversa dalla root alla quale non si può accedere direttamente
-si deve assegnare un nome casuale all'immagine.
-il percorso e il nome file devono essere salvati in un db
-l'immagine deve essere richiamata poi tramite db
La mia domanda è: il core di joomla effettua con Jfile un qualche tipo di controllo sui file caricati? (ho seguito l'esempio nella documentazione, funziona, ma non so se sia un modo sicuro per l'upload delle immagini)
Non pretendo stiate qui a perdere troppo tempo a darmi spiegazioni. Però magari potreste indicarmi cosa devo ricercare in rete per poter capire e imparare, perché avendo poca esperienza è una ricerca un po' a tentoni.
Quando metterò in sieme una versione alfa della componente, renderò ovviamente disponibile il codice per avere opinioni.
Grazie in anticipo
Max
.
Edit: Nel wiki inglese sono andato a rileggermi questa guida
Creating_a_file_uploader_in_your_component . Mi sa tanto che la domanda che ho fatto era più o meno insensata-per questo ho modificato il titolo-, ma il tutorial quando parla di sicurezza rimanda al file che ho precedentemente linkato. Dunque sono al punto di partenza e non so ancora bene cosa devo cercare per capire meglio il problema. A presto.