Come nascodere alias nell'URL di un articolo
-
Ciao a tutti.
Ho un sito basato su Joomla 4.4.10.
Ho creato un articolo (che ho assegnato alla categoria "Uncategorised") che ovviamente ha un alias.
Ho creato una nuova voce di menu (singolo articolo), collegata all'articolo stesso.
Come sappiamo l'alias appare nell'URL dell'articolo.
Esempio: https://www.miosito/alias-articolo.htmlDomanda: esiste un metodo per nascondere all'utente l'alias dell'articolo?
La richiesta nasce dal fatto che all'interno dell'articolo in questione è presente il link per scaricare un file PDF venduto con Paypal.
In pratica, dopo il pagamento con Paypal, l'utente viene automaticamente reindirizzato alla pagina: "https://www.miosito/alias-articolo.html", nella quale potrà scaricare il file appena pagato.Se l'utente copia l'URL della pagina di download (https://www.miosito/alias-articolo.html) può inviarlo a chiunque e chi lo riceve può effettuare il download senza pagare in quanto bypassa il bottone di Paypal.
Se NON è possibile nascondere l'alias dell'articolo, l'unico metodo per limitare i download fraudolenti è cambiare manualmente l'alias ogni giorno (o frequentemente) ma in questo modo è anche necessario modificare il codice del bottone Paypal, procedura che purtroppo non è semplice.
Grazie.
Ettore
-
In quanto ho scritto c'è una imprecisione. Infatti l'alias che viene indicato nell'URL non è quello dell'articolo stesso ma della voce di menù ad esso collegata. Comunque il concetto non cambia: è possibile nascondere l'alias?
Grazie.Ettore
-
Che io sappia no. Potresti però mettere l'articolo solo per utenti registrati. Infatti io ho fatto così. Oppure potresti utilizzare dei componenti che gestiscono il download
-
No, non c'è modo se non intervenendo direttamente sulla view con un componente. Mi spiego: quando usi un sistema di visualizzazione documenti "progetto" l'url viene inviato tramite POST e quindi l'url "sembra" vuota ma in realtà dei dati (per esempio quello del file da visualizzare) è integrata nella richiesta.
Tralasciando che in realtà la richiesta POST si può comunque vedere è sicuramente più difficile fare un semplice copia/incolla dell'URL per vedere il contenuto della pagina.Il tuo caso è abbastanza particolare perché, oltre a dover nascondere l'URL devi anche abilitare il download solo se si arriva da un sito esterno (paypal) quindi non hai controllo diretto della sorgente.
Così a naso proverei a fare un'override della view articolo e all'inizio metti un controllo sul REFERRER (che è il sistema HTTP per capire "da dove viene l'utente"). Puoi fare un codice di questo tipo:if (isset($_SERVER['HTTP_REFERER'])) { $referer = $_SERVER['HTTP_REFERER']; if (strpos($referer, 'paypal.com') !== false) { echo "SCRIVO IL CODICE PER FAR SCARICARE IL FILE"; } else { echo "SONO ARRIVATO SU QUESTA PAGINA MA NON DA PAYPAL."; } } else { echo "NON RIESCO A LEGGERE IL REFERRER."; }
Tieni però presenti alcune criticità:
- Non sempre è disponibile il REFERRE: Paypal potrebbe decidere di nasconderlo o mettere qualcosa a caso
- Se nell'articolo comunque c'è un link ad un file sul server nulla impedisce all'utente di fare tasto destro sul link -> copia collegamento -> e avere a disposizione il link diretto del file, bypassando la pagina
Forse ti conviene utilizzare dei sistemi più strutturati tipo e-commerce o sistema di documenti e mettere in vendita direttamente così il file.
Ciao -
Grazie per le risposte.
Essendoci in gioco cifre quasi irrisorie, anche il danno causato da probabili download fraudolenti sarà di poco conto.
Credo che cambiare periodicamente l'URL della pagina di download sul sito e nel codice del bottone PayPal, sia il metodo più semplice.
Per fortuna il documento PDF da acquistare e scaricare può interessare solo i chitarristi che, salvo rari casi, non sono grandi esperti di tecnologia informatica.Grazie ancora.
ettore
-
Ciao, la cosa migliore sarebbe usare un estensione dedicata e-commerce che genera il link di download, devi vedere sulla JED categoria e-commerce https://extensions.joomla.org/category/e-commerce/