Wrapper Joomla

Ciao Gianni, ho creato un semplice script in php per visualizzare una galleria fotografica.

[per inciso...

Lidea è stata questa: memorizzo le immagini (con nome progressivo da 1 a n) in una sottocartella della cartella images, quindi nello script php inserisco come parametri:

  • indice iniziale (solitamente 1);
  • indice finale (n);
  • percorso della cartella (images/cartlla/);
  • estensione dei file (.jpg);

quindi, di default parto con la prima immagine ed inserisco i link a successiva e precedente.]

Questo script (uno per ogni galleria) lo collego al menu principale come "wrapper". Il problema è che questo script è accessibile direttamente via url (per chi conosce il percorso), come posso inibire l'accesso diretto a tale file?

inviato 10 anni fa
Nico Colonna
X 0 X

Il wrapper di Joomla usa un iframe?

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

si.

risposto 10 anni fa
Nico Colonna
X 0 X

allora è tesa...  :giveup:

Fai questo esperimento: nello script della galleria metti un echo $_SERVER['HTTP_REFERER'];

Poi apri il browser e vai DIRETTAMENTE alla pagina di Joomla che mostra la galleria. Cosa ha prodotto l'echo?

Attenzione, se devi ripetere il test devi fare in modo che la pagina di Joomla che mostra la galleria sia la prima pagina del tuo sito che apri dall'apertura del browser.

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

In realtà il problema sulla galleria è relativo, visto che l'unico inconveniente è l'accesso diretto alle immagini senza filtro di layout. Il problema sostanziale è su un altro contenuto che avevo deciso di realizzare tramite wrapper: la gestione di una banca del tempo.

Questo script richiede il login del correntista/amministratore e la gestione dei movimenti e prenotazioni.  Avevo pensato di realizzare un modulo sulla base del modulo login. In tal modo sfrutto il controllo di Joomla (nella index.php) sulla definizione di una variabile di controllo. Ma ho subito riscontrato un prooblema, non riesco a trasferire le informazioni via HTTP_POST_VARS.

Lo so i problemi diventano molti, ma mentre faccio gli esperimenti che mi hai consigliato ti consegno un altro rompicapo... ^-^

risposto 10 anni fa
Nico Colonna
X 0 X

allora è tesa...  :giveup:

Fai questo esperimento: nello script della galleria metti un echo $_SERVER['HTTP_REFERER'];

Poi apri il browser e vai DIRETTAMENTE alla pagina di Joomla che mostra la galleria. Cosa ha prodotto l'echo?

Attenzione, se devi ripetere il test devi fare in modo che la pagina di Joomla che mostra la galleria sia la prima pagina del tuo sito che apri dall'apertura del browser.

L'echo da "http://www.giovanissimi.net/index.php?option=com_wrapper&Itemid=35 ".

Che significa?

risposto 10 anni fa
Nico Colonna
X 0 X

coincide con l'URL della pagina di Joomla che wrappa la galleria vero?

Allora metti all'inizio dello script della galleria un controllo che verifica se $_SERVER['HTTP_REFERER'] vale proprio l'URL in questione (in caso contrario esegue un exit()), poi prova ad aprire la galleria senza passare da Joomla.

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Non funziona  :'(

Impedisce sempre l'accesso!!

 :bye:

risposto 10 anni fa
Nico Colonna
X 0 X

fatti mostrare sempre il valore di $_SERVER['HTTP_REFERER'] e verifica che sia quello atteso oppure no

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Se accedo dal portale mi permette l'accesso.

Se accedo tramite url:

- se ho appena aperto il browser mi impedisce l'accesso;

- se lo faccio dopo aver visitato il link dal portale joomla mi permette l'accesso anche tramite url.

- se apro il portale ma NON il link, quando inseriso il link tramite url mi impedisce l'accesso.

E' già un ottimo risultato ma si può migliorare qualcosa?

Grazie  :bye:

risposto 10 anni fa
Nico Colonna
X 0 X

Usando il referer non credo si possa fare di più di così  :-\

Adesso vedo se si può giocare con un Javascript...

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Esiste un'altra variabile che garantisce di sapere l'url?

risposto 10 anni fa
Nico Colonna
X 0 X

PS.$_SERVER['HTTP_REFERER'] funziona sempre?

Sto cercando di applicare la tecnica ad un altro sito. In questo secondo caso ho un iframe per il menu (fatto per lo più in javascript). In locale (quando richiamo il menu da url) quando richiedo l'echo mi dice che l'indice HTTP_REFERER non è definito. :idiot:

 :bye:

risposto 10 anni fa
Nico Colonna
modificato 10 anni fa
X 0 X

Questa è una tecnica palliativa...  :P

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Scusami, ho modificato il post precedente per essere più completo.

risposto 10 anni fa
Nico Colonna
X 0 X

potresti provare con un controllo Javascript tipo:

if(top == self) {

alert("non sei in un frame/iframe");

}

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda

Domande simili