Security Revolution — Documentazione
Security Revolution protegge il suo negozio PrestaShop da registrazioni spam, invii abusivi di moduli, sovraccarico da crawler, comportamenti sospetti dei visitatori, header rischiosi, modifiche inattese ai file, vulnerabilità note e lacune nei backup. Funziona lato server, registra ciò che blocca e le permette di regolare ogni livello di protezione dal Back Office.
Features
- Spam registration blocking. Blocca le registrazioni in base a dominio e-mail, alfabeti non latini, nomi senza senso, schemi di nome sospetti, campi honeypot, IP bannati e limiti di frequenza delle registrazioni.
- Contact and comment filters. Controlla i moduli di contatto per ban IP, valore honeypot inviato, limiti di frequenza, parole chiave spam, nomi cliente senza senso e troppi link; controlla i commenti prodotto per ban IP, limiti di frequenza, nomi cliente senza senso, parole chiave spam e più di due link.
- Action rate limits. Limita nuovi carrelli, registrazioni, messaggi di contatto e commenti prodotto per IP, con soglie orarie e giornaliere separate.
- Crawler management. Precarica crawler noti come Googlebot, Bingbot, ChatGPT-User, GPTBot, Claude, PerplexityBot, SemrushBot e AhrefsBot, poi consente di autorizzare o bloccare famiglie di crawler.
- Verified search engine handling. Verifica i principali crawler dei motori di ricerca tramite forward-confirmed reverse DNS prima di esentarli dai limiti per crawler.
- Global traffic throttling. Applica limiti di richiesta per IP e budget di crawl per crawler tramite gli hook del dispatcher del front controller.
- Faceted navigation protection. Usa un token bucket ponderato per richieste costose su listing filtrati e può restituire HTTP 429 prima del rendering pesante del listing.
- Session and behaviour monitoring. Traccia sessioni, visualizzazioni di pagina, azioni carrello, dati browser/dispositivo, codici paese, stato bot e punteggi comportamentali.
- Security headers. Aggiunge header runtime configurabili come
X-Frame-Options,X-Content-Type-Options,Referrer-Policy, HSTS, Permissions Policy e CSP. - Email security. Registra le e-mail in uscita, rileva domini usa e getta, limita il volume delle e-mail di reset password e non transazionali e crea avvisi per invii anomali.
- File and vulnerability checks. Crea una baseline di integrità dei file, scansiona file modificati o sospetti e controlla versioni PrestaShop/moduli e impostazioni server rischiose.
- Backups and scheduled tasks. Crea backup manuali, backup pianificati, regole di retention, task cron, job di pulizia, risoluzione GeoIP e job di classificazione visitatori.
Configuration options
- Module Active. Abilita o disabilita tutti gli hook di protezione; predefinito:
1. - Debug. Abilita il logging generale di debug quando usato dal supporto; predefinito:
0. - Registration Debug. Abilita logging aggiuntivo della protezione registrazioni quando usato dal supporto; predefinito:
0. - Blocked Email Domains. Blocca le registrazioni da un dominio per riga; predefinito:
qq.com,163.com,126.com,sina.com,sina.cn,sohu.com,21cn.com,tom.com,139.com,yeah.net. - Block Non-Latin Characters. Blocca i nomi di registrazione contenenti alfabeti configurati; predefinito:
1. - Blocked Character Scripts. Seleziona gli alfabeti bloccati nei nomi di registrazione; predefinito:
cyrillic,chinese,japanese,korean,arabic,hebrew,thai,devanagari. - Block Gibberish Names. Rileva nomi cliente dall’aspetto casuale durante la registrazione; predefinito:
1. - Enable Honeypot Fields. Mostra il campo anti-bot nascosto nel modulo account cliente; i controlli di registrazione verificano quel campo inviato, e anche la protezione contatto rifiuta un campo inviato non vuoto se presente; predefinito:
1. - Whitelisted IPs. Permette agli IP fidati di saltare tutti i controlli di protezione; predefinito: vuoto.
- Cart Whitelist. Permette agli IP elencati di saltare i limiti specifici del carrello; predefinito: vuoto.
- Registration Whitelist. Permette agli IP elencati di saltare i limiti specifici della registrazione; predefinito: vuoto.
- Contact Whitelist. Permette agli IP elencati di saltare i limiti specifici del contatto; predefinito: vuoto.
- Comment Whitelist. Permette agli IP elencati di saltare i limiti specifici dei commenti; predefinito: vuoto.
- Enable Contact Form Protection. Attiva i controlli antispam del modulo di contatto; predefinito:
1. - Contact Form Spam Keywords. Blocca i messaggi di contatto contenenti una frase configurata per riga; predefinito: include frasi come
guest post,link building,backlink,SEO services,digital marketing,cryptocurrencyeonline casino. - Block Links in Contact Form. Blocca i messaggi di contatto quando contengono più link del numero consentito; predefinito:
1. - Max Links Allowed. Imposta il limite di link nei messaggi di contatto; predefinito:
3. - Enable Comment Protection. Attiva i controlli antispam per commenti/recensioni prodotto; predefinito:
1. - Enable Bot Fight Mode. Sfida il traffico sospetto con verifica JavaScript; predefinito:
0. - Challenge Suspicious User-Agents. Sfida segnali di scraper, automazione e browser vuoto quando Bot Fight Mode è abilitato; predefinito:
1. - Enable Rate Limiting. Abilita limiti di azione per carrelli, registrazioni, contatti e commenti; predefinito:
1. - New Cart Hourly Limit. Limita i nuovi carrelli per IP all’ora; predefinito:
20. - New Cart Daily Limit. Limita i nuovi carrelli per IP al giorno; predefinito:
100. - Registration Hourly Limit. Limita i tentativi di registrazione per IP all’ora; predefinito:
3. - Registration Daily Limit. Limita i tentativi di registrazione per IP al giorno; predefinito:
5. - Contact Hourly Limit. Limita gli invii del modulo di contatto per IP all’ora; predefinito:
5. - Contact Daily Limit. Limita gli invii del modulo di contatto per IP al giorno; predefinito:
15. - Comment Hourly Limit. Limita i commenti prodotto per IP all’ora; predefinito:
5. - Comment Daily Limit. Limita i commenti prodotto per IP al giorno; predefinito:
20. - Enable Global Rate Limiting. Applica limiti di richiesta a tutte le visualizzazioni di pagina per IP; predefinito:
1. - Requests Per Minute. Imposta il limite globale al minuto per IP; predefinito:
60. - Requests Per Hour. Imposta il limite globale orario per IP; predefinito:
1200. - Enable Per-Crawler Crawl Budget. Limita un crawler identificato non appartenente a motori di ricerca su tutti i suoi IP; predefinito:
1. - Crawler Requests Per Minute. Imposta il limite al minuto per crawler; predefinito:
30. - Crawler Requests Per Hour. Imposta il limite orario per crawler; predefinito:
600. - Trusted Reverse-Proxy CIDRs. Aggiunge reverse proxy non Cloudflare i cui header IP client inoltrati possono essere considerati affidabili; predefinito: vuoto.
- Enable Facet Protection. Protegge URL di categorie/listing filtrati con costi di richiesta ponderati; predefinito:
1. - Facet Protection Mode. Sceglie
enforce,monitorooff; predefinito:enforce. - Fail Open on Redis Errors. Permette richieste di listing filtrati se il backend Redis del limiter non è disponibile; predefinito:
1. - Bucket Capacity. Imposta il saldo massimo di token del facet limiter; predefinito:
240. - Refill Tokens Per Second. Imposta la velocità di recupero dei token del facet limiter; predefinito:
1. - Low Cost. Imposta il costo in token per listing base, paginazione, ordinamento e modifiche per pagina; predefinito:
1. - Single Filter Cost. Imposta il costo in token per un nuovo contesto con un filtro; predefinito:
4. - Multi-Filter Base Cost. Imposta il costo base in token per un nuovo contesto multi-filtro; predefinito:
8. - Multi-Filter Per-Value Cost. Aggiunge costo in token per ogni valore di filtro attivo in un nuovo contesto multi-filtro; predefinito:
8. - Seen Context Cost. Imposta il costo in token per tornare a un contesto filtro già visto per la stessa identità; predefinito:
1. - Cooldown Seconds. Imposta il tempo
Retry-Afterdopo il superamento del facet bucket; predefinito:120. - Bucket TTL Seconds. Imposta per quanto tempo i bucket inattivi del facet limiter restano in Redis; predefinito:
1800. - Crawler Management. Abilita la gestione allow/block dei crawler noti; predefinito:
1. - Firewall Runtime Mode. Sceglie
monitor,enforceooffper il blocco runtime crawler/firewall; predefinito:monitor. - Security Headers Runtime. Applica gli header di sicurezza configurati durante le richieste front-office; predefinito:
1. - X-Frame-Options. Controlla la protezione frame contro il clickjacking; predefinito:
SAMEORIGIN. - X-XSS-Protection. Invia l’header XSS legacy del browser; predefinito:
false. - X-Content-Type-Options. Invia
nosniff; predefinito:true. - Referrer-Policy. Controlla i dati referrer del browser; predefinito:
strict-origin-when-cross-origin. - HSTS Enabled. Invia Strict-Transport-Security; predefinito:
false. - HSTS Max Age. Imposta la durata HSTS in secondi; predefinito:
31536000. - HSTS Include Subdomains. Aggiunge i sottodomini a HSTS; predefinito:
false. - HSTS Preload. Aggiunge la direttiva HSTS preload; predefinito:
false. - Permissions Policy. Invia un header Permissions-Policy personalizzato; predefinito: vuoto.
- Cross-Origin Opener Policy. Invia un header COOP; predefinito: vuoto.
- Cross-Origin Resource Policy. Invia un header CORP; predefinito: vuoto.
- CSP Enabled. Invia header Content-Security-Policy; predefinito:
false. - CSP Report Only. Invia CSP in modalità report-only quando abilitato; predefinito:
true. - CSP Policy. Definisce direttive e sorgenti CSP; predefinito: sorgenti orientate a PrestaShop per self, Google, Google Tag Manager, Google Analytics, Google Fonts, YouTube, data, blob e immagini HTTPS.
- Enable Session Tracking. Registra le sessioni dei visitatori per analisi; predefinito:
1. - Session Timeout. Fa scadere le sessioni tracciate dopo inattività in minuti; predefinito:
60. - Admin / Internal IPs. Esclude gli IP elencati dal tracciamento sessioni e dalle statistiche visitatori/attività; predefinito: vuoto.
- Real Session Retention. Conserva i dati delle sessioni umane per questo numero di ore; predefinito:
2160. - Bot Session Retention. Conserva i dati delle sessioni bot per questo numero di ore; predefinito:
24. - Cart Action Retention. Conserva i record delle azioni carrello per questo numero di ore; predefinito:
720. - Enable Page Tracking. Registra contatori pagina leggeri; predefinito:
1. - Detailed Page Tracking. Salva lo storico completo delle pagine per le sessioni; predefinito:
0. - Enable Cart Action Tracking. Traccia azioni di aggiunta, rimozione e aggiornamento del carrello; predefinito:
1. - Enable Behavior Analysis. Assegna punteggi ai pattern di navigazione per attività sospette; predefinito:
1. - Max Pages Per Session. Aggiunge rischio comportamentale quando una sessione supera questo numero di pagine; predefinito:
200. - Max Pages Per Minute. Aggiunge rischio comportamentale quando la velocità delle pagine supera questa soglia; predefinito:
30. - Max Sessions Per IP. Aggiunge rischio comportamentale quando un IP crea troppe sessioni in 24 ore; predefinito:
50. - Max Pages Per IP. Aggiunge rischio comportamentale quando un IP visualizza troppe pagine in 24 ore; predefinito:
500. - Warning Score Threshold. Registra un avviso quando il punteggio comportamentale raggiunge questo valore; predefinito:
50. - Block Score Threshold. Imposta il punteggio comportamentale usato come soglia di blocco; predefinito:
80. - High Pages Base Points. Aggiunge punteggio base per il superamento del massimo di pagine per sessione; predefinito:
20. - High Pages Per 50 Extra. Aggiunge punteggio ogni 50 pagine oltre il limite sessione; predefinito:
5. - High Pages Max Points. Limita il punteggio per numero elevato di pagine; predefinito:
60. - Rapid Crawl Base Points. Aggiunge punteggio base per il superamento delle pagine al minuto; predefinito:
25. - Rapid Crawl Per 10 Over. Aggiunge punteggio ogni 10 pagine/minuto oltre il limite; predefinito:
5. - Rapid Crawl Max Points. Limita il punteggio di rapid-crawl; predefinito:
60. - Many Sessions Base Points. Aggiunge punteggio quando un IP crea molte sessioni; predefinito:
10. - Many Sessions Per 10 Over. Aggiunge punteggio ogni 10 sessioni oltre il limite IP; predefinito:
5. - High IP Pages Base Points. Aggiunge punteggio base quando un IP visualizza molte pagine; predefinito:
15. - High IP Pages Per 100 Over. Aggiunge punteggio ogni 100 pagine oltre il limite IP; predefinito:
5. - Exempt Allowed Crawlers. Salta l’analisi comportamentale per i crawler contrassegnati come consentiti; predefinito:
1. - Unverified Human Points. Aggiunge punteggio al traffico che non ha completato la verifica umana; predefinito:
10. - Behavior Analysis Minimum Pages. Attende che una sessione abbia questo numero di visualizzazioni pagina prima di valutarla; predefinito:
5. - Request Log Retention. Conserva le righe del log richieste per questo numero di ore; predefinito:
24. - Email Security Enabled. Abilita logging e controlli delle e-mail in uscita; predefinito:
false. - Email Rate Limit Enabled. Abilita limiti di frequenza per e-mail non transazionali; predefinito:
false. - Block Disposable Email Domains. Blocca domini e-mail usa e getta configurati per la sicurezza e-mail; predefinito:
false. - Email Volume Alert Enabled. Avvisa quando il volume e-mail supera la normalità; predefinito:
false. - Mass Sending Alert Enabled. Avvisa quando molte e-mail vengono inviate in poco tempo; predefinito:
false. - Recipient Hourly Email Limit. Limita le e-mail a un destinatario per ora; predefinito:
10. - Recipient Daily Email Limit. Limita le e-mail a un destinatario per giorno; predefinito:
30. - IP Hourly Email Limit. Limita le e-mail collegate a un IP per ora; predefinito:
20. - Password Reset Hourly Limit. Limita le e-mail di reset password per ora; predefinito:
3. - Email Volume Alert Threshold. Avvisa quando il volume raggiunge questo moltiplicatore rispetto alla baseline; predefinito:
2.0. - Mass Sending Threshold. Avvisa quando il conteggio e-mail raggiunge questa soglia; predefinito:
50. - Backup Enabled. Abilita le funzioni di backup nell’area backup; predefinito:
false. - Backup Retention Days. Conserva i file di backup per questo numero di giorni; predefinito:
30. - Backup Retention Count. Conserva questo numero di file di backup; predefinito:
10. - Backup Notify Email. Invia notifiche di backup a questo indirizzo; predefinito: vuoto.
- Backup Notify on Success. Invia notifiche di successo per i backup; predefinito:
false. - Backup Notify on Failure. Invia notifiche di errore per i backup; predefinito:
false. - Backup Default Storage. Seleziona l’adattatore di storage backup predefinito; predefinito:
local. - Schedule Backup Type. Imposta il tipo di backup per una pianificazione; predefinito:
full. - Schedule Backup Scope. Imposta l’ambito del backup per una pianificazione; predefinito:
full. - Schedule Frequency. Esegue i backup pianificati nell’intervallo selezionato; predefinito:
daily. - Schedule Run Time. Esegue la pianificazione a quest’ora; predefinito:
03:00:00. - Schedule Run Day. Seleziona il giorno usato dalle pianificazioni settimanali/mensili; predefinito:
0. - Schedule Storage Adapter. Seleziona lo storage per il backup pianificato; predefinito:
local. - Schedule Retention Count. Conserva questo numero di file per la pianificazione; predefinito:
7. - Schedule Retention Days. Conserva i file di backup pianificati per questo numero di giorni; predefinito:
30. - Schedule Notify Email. Invia notifiche della pianificazione a questo indirizzo; predefinito: vuoto.
- Schedule Notify on Success. Invia notifiche di successo per la pianificazione; predefinito:
false. - Schedule Notify on Failure. Invia notifiche di errore per la pianificazione; predefinito:
true. - Schedule Active. Abilita la pianificazione backup; predefinito:
true.
Customization examples
Aggiunga IP fidati di ufficio, agenzia o monitoraggio, uno per riga:
whitelisted_ips =
203.0.113.10
198.51.100.25
Usi whitelist specifiche per azione quando un IP deve saltare solo un’area:
whitelisted_ips_cart =
203.0.113.10
whitelisted_ips_registration =
198.51.100.25
whitelisted_ips_contact =
203.0.113.*
whitelisted_ips_comment =
Aggiunga blocchi di domini di registrazione e frasi spam per il contatto:
blocked_email_domains =
qq.com
163.com
temporary-mail.example
contact_spam_keywords =
guest post
link building
crypto investment
online casino
Regoli limiti di crawler e richieste senza disattivare la protezione:
global_rate_limit_enabled = 1
global_rate_limit_per_minute = 60
global_rate_limit_per_hour = 1200
per_crawler_rate_limit_enabled = 1
per_crawler_max_per_minute = 30
per_crawler_max_per_hour = 600
firewall_runtime_mode = monitor
Configuri Facet Protection per le pagine categoria filtrate:
facet_limiter_enabled = 1
facet_limiter_mode = enforce
facet_limiter_capacity = 240
facet_limiter_refill_per_second = 1
facet_limiter_cost_single = 4
facet_limiter_cost_multi_base = 8
facet_limiter_cost_multi_per_filter = 8
facet_limiter_cooldown_seconds = 120
Quando il facet limiter blocca una richiesta, il browser riceve una vera risposta di rate limit:
HTTP/1.1 429 Too Many Requests
Retry-After: 120
X-MPR-Facet-Limiter: throttled; retry-after=120; identity=ip; cost=8
Il nome del campo honeypot nel modulo account cliente viene generato dal nome del modulo:
<input type="text" name="mpr_hp_b7a49f39" id="mpr_hp_b7a49f39" value="" tabindex="-1" autocomplete="off">
Una CSP policy può essere modificata nella scheda Headers, ad esempio:
default-src 'self';
script-src 'self' 'unsafe-inline' 'unsafe-eval' https://www.google.com https://www.gstatic.com https://www.googletagmanager.com https://www.google-analytics.com;
style-src 'self' 'unsafe-inline' https://fonts.googleapis.com;
img-src 'self' data: https: blob:;
font-src 'self' https://fonts.gstatic.com data:;
connect-src 'self' https://www.google-analytics.com https://stats.g.doubleclick.net;
frame-src 'self' https://www.google.com https://www.youtube.com;
frame-ancestors 'self';
form-action 'self';
base-uri 'self';
object-src 'none';
Esegua il cron del modulo dal server ogni minuto, così pulizia, classificazione, lavoro GeoIP, task cron e backup pianificati possono essere eseguiti:
* * * * * php /var/www/html/modules/mprsecurityrevolution/cron.php --token=YOUR_TOKEN
È supportata anche l’esecuzione cron via HTTP:
curl "https://yourshop.com/modules/mprsecurityrevolution/cron.php?token=YOUR_TOKEN"
Argomenti CLI opzionali:
--token=YOUR_TOKEN
--max-tasks=20
--max-seconds=55
--context=cron
Installation
- Nel Back Office PrestaShop, vada su Modules → Module Manager.
- Clicchi Upload a module.
- Selezioni il file ZIP di Security Revolution.
- Dopo l’installazione, clicchi Configure.
- Apra Total Defender / Security Revolution nel menu Back Office e controlli le aree Dashboard, Monitoring, Protection, Backup e Settings.
- Aggiunga il proprio IP di ufficio o agenzia alla whitelist prima di testare blocchi o limiti di frequenza.
- Crei una baseline di integrità dei file dopo un’installazione pulita o un aggiornamento verificato.
- Aggiunga il comando cron se vuole che pulizia pianificata, classificazione, lavoro GeoIP e backup vengano eseguiti senza attendere attività admin.
How it works
Security Revolution registra hook front-office e Back Office, poi applica i controlli che abilita. Usa hook come actionSubmitAccountBefore, actionContactFormSubmitBefore, actionCartSave, actionObjectProductCommentAddBefore, actionEmailSendBefore, actionDispatcherBefore, displayHeader e displayBeforeBodyClosingTag; su PrestaShop 1.6 usa anche actionBeforeSubmitAccount, actionDispatcher e displayFooter.
Nel Back Office vede dashboard, tentativi bloccati, dati di traffico e sessione, policy crawler, log firewall, header di sicurezza, scansioni di integrità file, risultati vulnerabilità, log di sicurezza e-mail, file di backup, pianificazioni backup e task cron. I tentativi bloccati vengono salvati con tipo, motivo, indirizzo IP, e-mail quando disponibile, dati extra e timestamp.
I motivi reali di blocco includono:
rate_limit
blocked_email
spam_keyword
too_many_links
honeypot
non_latin
gibberish
banned_ip
invalid_name
spam_content
crawler_blocked
suspicious_behavior
global_rate_limit_exceeded
Honest limits
- Security Revolution riduce gli abusi comuni e le dà visibilità, ma non sostituisce aggiornamenti PrestaShop, hosting sicuro, firewall server, password robuste o backup regolari fuori server.
- CSP e HSTS possono bloccare pagamenti, analytics, font, media o widget incorporati se abilitati senza controllare i domini usati dal negozio. Inizi con CSP in modalità report-only e testi prima di applicarlo.
- Facet Protection dipende da una connessione Redis tramite il supporto cache di PrestaShop. Con fail-open abilitato, i problemi Redis vengono registrati e i visitatori reali vengono lasciati passare.
- Lo storage dei backup è locale nella sorgente verificata. L’area storage del Back Office espone lo storage locale; adattatori remoti come FTP, SFTP, storage compatibile S3 e WebDAV non sono implementati in questa versione sorgente.
- Le scansioni di integrità dei file confrontano i file con la baseline che crea. Crei la baseline solo dopo un’installazione pulita o un aggiornamento fidato, non dopo aver già sospettato una compromissione.
- Le esenzioni per motori di ricerca verificati dipendono dalla verifica DNS. Uno user agent che dichiara di essere Googlebot o Bingbot non riceve l’esenzione se l’IP non supera il controllo di verifica.
Frequently Asked Questions
Will customers see a CAPTCHA?
No. Il modulo usa un campo honeypot nascosto nel modulo account cliente, limiti di frequenza, controlli crawler, punteggio comportamentale e verifica JavaScript opzionale. Nella sorgente verificata non aggiunge un CAPTCHA visibile.
What happens when the honeypot catches a bot?
Il modulo registra il tentativo con motivo honeypot e blocca la registrazione, oppure blocca l’invio del modulo di contatto se lo stesso campo viene inviato con un valore non vuoto.
Can I block only one action for an IP?
Sì. I ban possono essere globali o specifici per azione per cart, login, registration, contact e comment.
Does the module block Googlebot?
I principali motori di ricerca noti possono essere autorizzati e verificati tramite forward-confirmed reverse DNS. Una richiesta riceve l’esenzione solo dopo che l’IP corrisponde al pattern DNS atteso del motore di ricerca.
Can I test firewall rules before blocking visitors?
Sì. Usi firewall_runtime_mode = monitor per registrare ciò che verrebbe bloccato, poi passi a enforce quando i risultati sono corretti.
Does file integrity scan every file in my shop?
No. Monitora directory di codice e tipi di file selezionati, saltando cache, log, upload, immagini, download, librerie vendor e node_modules.
Does email security block order confirmations?
No. Tipi di e-mail transazionali come conferme d’ordine, aggiornamenti stato ordine, fatture, note di credito ed e-mail di creazione account sono esclusi dal rate limiting e-mail.
Can backups be stored remotely?
La sorgente verificata implementa storage backup locale. Usi lo storage locale salvo che la sua versione installata includa e testi esplicitamente adattatori di storage aggiuntivi.
Compatibilità: PrestaShop dalla versione 1.6 alla 9.0 (ultima), PHP 7.1+. Continuiamo a supportare le prossime versioni di PrestaShop.