Protezione del Feed — Chiave Segreta e Basic Auth del Generatore
Il modulo utilizza due meccanismi di protezione distinti: una chiave segreta che controlla chi può avviare la generazione del feed, e credenziali HTTP Basic Auth che consentono al generatore di superare una password .htaccess a livello di server sul tuo sito.
Disponibile dalla v2.4.5
Panoramica
La generazione del feed viene avviata tramite una richiesta HTTP al front end del tuo negozio (/module/facebookproductsfeed/GenerateFeed). Senza alcuna protezione, chiunque conosca quell'URL potrebbe avviare una generazione in qualsiasi momento, consumando risorse del server. La chiave segreta evita questo problema richiedendo un token corrispondente nell'URL prima che il modulo esegua qualsiasi operazione.
Separatamente, molte configurazioni di hosting — in particolare gli ambienti di staging e alcuni hosting condivisi — proteggono l'intero sito o i percorsi equivalenti a wp-admin con l'autenticazione HTTP Basic Auth tramite .htaccess. Quando il modulo effettua la sua chiamata cURL interna per continuare un ciclo, quella richiesta cURL incontra lo stesso blocco .htaccess e fallisce silenziosamente. Le credenziali Basic Auth del generatore indicano al modulo quale nome utente e password includere in quelle richieste cURL interne affinché possano superare il blocco.
Si tratta di due impostazioni indipendenti che risolvono due problemi diversi.
La Chiave Segreta
La chiave segreta è un token derivato dal _COOKIE_KEY_ del tuo negozio e dal nome del modulo. Viene memorizzata globalmente (FPF_SECRET_KEY) e deve essere presente come parametro URL (fpf_secret_key) affinché qualsiasi richiesta di generazione via web possa procedere.
Il controller del generatore esegue questo controllo all'inizio:
?fpf_secret_key=<value>
Se il valore è assente o errato, il controller termina immediatamente senza produrre alcun output. La generazione via CLI (cron tramite PHP CLI) aggira completamente questo controllo — la chiave è richiesta solo per le richieste web.
Il modulo pre-popola la chiave segreta in tutti gli URL che ti mostra: l'URL cron nella scheda Cron Jobs, l'URL della console nella scheda Dashboard e l'URL usato internamente dal generatore per la continuazione dei cicli. Non è mai necessario cercare o copiare manualmente la chiave.
Reimpostare la Chiave Segreta
Se sospetti che il tuo URL di generazione sia stato esposto o desideri ruotare la chiave, puoi rigenerarla visitando l'URL del tuo Back Office con fpf_reset_secret=1 in coda:
https://yourstore.com/admin/index.php?controller=AdminModules&configure=facebookproductsfeed&fpf_reset_secret=1
Il modulo rigenera la chiave da md5(_COOKIE_KEY_ . 'facebookproductsfeed') e memorizza il risultato globalmente. Dopo il ripristino, tutti i vecchi URL dei cron job impostati sul tuo server smetteranno di funzionare — è necessario copiare il nuovo URL cron dalla scheda Cron Jobs e aggiornare l'entry cron sul server.
La chiave segreta è memorizzata come valore di configurazione globale di PrestaShop, il che significa che si applica a tutti i negozi in una configurazione multistore. Reimpostarla invalida gli URL cron esistenti per ogni negozio contemporaneamente.
Basic Auth del Generatore
Questa sezione si trova nella scheda Feed Protection (#fieldset_security), sotto il titolo Basic Auth for generation.
| Campo | Descrizione |
|---|---|
| Basic Auth Username | Il nome utente HTTP Basic Auth che il modulo invia nelle richieste cURL interne durante la generazione del ciclo |
| Basic Auth Password | La password corrispondente. Una volta salvata, il campo mostra un badge al posto del valore — la password non viene mai più visualizzata |
Quando entrambi i campi sono compilati, ogni chiamata cURL interna effettuata dal generatore include un'intestazione Authorization: Basic .... Questo consente alla continuazione del ciclo di avere successo su server che richiedono credenziali per accedere al front office.
Per rimuovere le credenziali Basic Auth, svuota il campo Basic Auth Password e salva. Quando il campo della password è vuoto al momento del salvataggio, il modulo cancella sia il nome utente che la password.
Queste credenziali sono destinate esclusivamente alle richieste cURL interne del modulo. Non sono correlate all'opzione Protect the feeds URL? descritta di seguito, che controlla l'accesso ai file XML del feed completati.

Protezione URL del Feed (Correlata)
La scheda Feed Protection contiene anche un'opzione separata Protect the feeds URL? (FPF_SECURITY). Quando abilitata con un nome utente e una password, il modulo scrive un file .htaccess e .htpasswd nella cartella feeds/, richiedendo credenziali HTTP Basic Auth per scaricare i file XML del feed.
Si tratta di un livello di protezione diverso — limita chi può leggere i file del feed completati, non chi può avviare la generazione. Facebook Commerce Manager deve essere in grado di recuperare l'URL del feed, quindi se abiliti la protezione dell'URL del feed devi anche fornire quelle credenziali a Facebook durante la configurazione del catalogo.
| Chiave di configurazione | Predefinito | Scopo |
|---|---|---|
FPF_SECURITY | Disabilitato | Se la cartella feeds/ richiede HTTP Basic Auth |
FPF_SECURITY_USER | — | Nome utente per l'accesso ai file del feed |
FPF_SECURITY_PASS | — | Password per l'accesso ai file del feed |
FPF_BASIC_AUTH_USERNAME | — | Nome utente per le richieste cURL interne del modulo |
FPF_BASIC_AUTH_PASSWORD | — | Password per le richieste cURL interne del modulo |
FPF_SECRET_KEY | Generata automaticamente | Token richiesto nell'URL di generazione |
Note Importanti
- La chiave segreta non è memorizzata per singolo negozio — è un valore globale. Nelle configurazioni multistore, tutti i negozi condividono la stessa chiave e lo stesso formato di URL di generazione.
- La reimpostazione della chiave segreta non influisce sull'accesso ai file del feed (FPF_SECURITY), ma solo sulla possibilità di avviare la generazione.
- Le credenziali Basic Auth per il generatore sono memorizzate per singolo negozio (usando
Configuration::getanzichéConfiguration::getGlobalValue), quindi negozi diversi possono avere credenziali diverse. - La chiave segreta viene generata una volta all'installazione del modulo. Cambia solo se la reimposti esplicitamente tramite
?fpf_reset_secret=1o reinstalli il modulo.
Risoluzione dei Problemi
| Problema | Soluzione |
|---|---|
| Il cron job ha smesso di funzionare dopo la reimpostazione della chiave segreta | Copia il nuovo URL cron dalla scheda Cron Jobs e aggiorna l'entry cron sul tuo server |
| La generazione del feed si avvia ma si interrompe dopo il primo ciclo | Il tuo server ha la protezione Basic Auth .htaccess. Compila i campi Basic Auth Username e Basic Auth Password nella scheda Feed Protection in modo che il generatore possa continuare i cicli |
| "You can't access this page" quando si visita l'URL di generazione | Il parametro fpf_secret_key nell'URL è assente o obsoleto. Copia l'URL corretto dalla scheda Cron Jobs |
| L'URL del feed restituisce 401 a Facebook | La protezione dell'URL del feed (FPF_SECURITY) è abilitata. Fornisci quelle credenziali a Facebook Commerce Manager durante la configurazione del catalogo |
| Salvare la password Basic Auth mostra il badge "password has been set" ma la generazione continua a fallire con errore di autenticazione | Verifica che le credenziali corrispondano a quelle attese dal tuo server — testa con curl -u username:password <generation-url> dal terminale |
Domande Frequenti
È necessario configurare qualche protezione?
La chiave segreta è sempre attiva e viene generata automaticamente — non è necessario configurare nulla per la protezione di base. La Basic Auth del generatore è necessaria solo se il tuo ambiente di hosting richiede credenziali HTTP per accedere al front office.
Dove trovo l'URL di generazione corrente con la chiave segreta?
Vai alla scheda Cron Jobs. Il modulo mostra l'URL di generazione completo incluso il parametro fpf_secret_key. Copialo da lì anziché cercare di costruirlo manualmente.
Ho reimpostato la chiave segreta e ora il mio cron job non fa nulla. Cosa è successo?
Il valore fpf_secret_key del vecchio URL non corrisponde più a quello atteso dal modulo, quindi ogni richiesta viene rifiutata silenziosamente. Vai alla scheda Cron Jobs, copia il nuovo URL e aggiorna l'entry cron sul tuo server.
Qual è la differenza tra i campi Basic Auth e l'opzione 'Protect the feeds URL?'?
I campi Basic Auth Username/Password sono credenziali che il modulo invia nelle proprie richieste cURL in uscita affinché la generazione del ciclo possa continuare attraverso un blocco auth a livello di server. L'opzione Protect the feeds URL? crea un proprio blocco auth attorno ai file XML del feed completati, in modo che i visitatori esterni necessitino di credenziali per scaricarli. Sono funzionalità indipendenti.
Posso usare le stesse credenziali sia per la Basic Auth del generatore che per la protezione dell'URL del feed?
Sì, se il tuo server richiede già l'autenticazione per tutte le richieste, usare le stesse credenziali per entrambe ha senso. Le due impostazioni sono memorizzate separatamente e possono differire se necessario.
La reimpostazione della chiave segreta influisce su negozi diversi da quello corrente?
Sì. La chiave segreta è memorizzata globalmente, quindi reimpostarla invalida gli URL cron per ogni negozio nella configurazione multistore contemporaneamente. Aggiorna tutti i cron job dopo una reimpostazione.