1. Home
  2.  
  3. Blog
  4.  
  5. Web developer
  6.  
  7. Bloccare bot e visite indesiderate con htaccess e 6G Firewall

Bloccare bot e visite indesiderate con htaccess e 6G Firewall

Bloccare bot e visite indesiderate con htaccess
Getting your Trinity Audio player ready...

Bloccare bot e visite indesiderate al sito con .htaccess utilizzando il 6G Firewall

Il file .htaccess è uno strumento potente per proteggere un sito web da bot malevoli e visite indesiderate. Una delle soluzioni più efficaci è l’utilizzo del 6G Firewall, un set avanzato di regole ideato per mitigare attacchi e traffico indesiderato direttamente a livello del server, riducendo così il carico sul sito.

Cos’è il 6G Firewall?

Il 6G Firewall è una configurazione di regole .htaccess progettata per:

  • Bloccare richieste malevole basate su user-agent, referrer, metodi HTTP e altre variabili.
  • Limitare l’accesso a bot non autorizzati senza influire sull’esperienza dei visitatori legittimi.
  • Garantire compatibilità con i server Apache che supportano il modulo mod_rewrite.

Come implementare il 6G Firewall

  1. Accedi al file .htaccess
    Trova il file .htaccess nella directory principale del tuo sito. Se non lo vedi, abilita la visualizzazione dei file nascosti nel client FTP.
  2. Aggiungi le regole del 6G Firewall
    Incolla il seguente codice all’inizio del file .htaccess:

    # 6G FIREWALL/BLACKLIST
    # @ https://perishablepress.com/6g/
    # 6G:[QUERY STRING]
    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{QUERY_STRING} (eval\() [NC,OR]
        RewriteCond %{QUERY_STRING} (127\.0\.0\.1) [NC,OR]
        RewriteCond %{QUERY_STRING} ([a-z0-9]{2000,}) [NC,OR]
        RewriteCond %{QUERY_STRING} (javascript:)(.*)(;) [NC,OR]
        RewriteCond %{QUERY_STRING} (base64_encode)(.*)(\() [NC,OR]
        RewriteCond %{QUERY_STRING} (GLOBALS|REQUEST)(=|\[) [NC,OR]
        RewriteCond %{QUERY_STRING} (<|%3C)(.*)script(.*)(>|%3) [NC,OR]
        RewriteCond %{QUERY_STRING} (\\|\.\.\.|\.\./|~|`|<|>|\|) [NC,OR]
        RewriteCond %{QUERY_STRING} (boot\.ini|etc/passwd|self/environ) [NC,OR]
        RewriteCond %{QUERY_STRING} (thumbs?(_editor|open)?|tim(thumb)?)\.php [NC,OR]
        RewriteCond %{QUERY_STRING} (\'|\")(.*)(drop|insert|md5|select|union) [NC]
        RewriteRule .* - [F]
    </IfModule>
    # 6G:[REQUEST METHOD]
    <IfModule mod_rewrite.c>
        RewriteCond %{REQUEST_METHOD} ^(connect|debug|move|put|trace|track) [NC]
        RewriteRule .* - [F]
    </IfModule>
    # 6G:[REFERRER]
    <IfModule mod_rewrite.c>
        RewriteCond %{HTTP_REFERER} ([a-z0-9]{2000,}) [NC,OR]
        RewriteCond %{HTTP_REFERER} (semalt.com|todaperfeita) [NC]
        RewriteRule .* - [F]
    </IfModule>
    # 6G:[REQUEST STRING]
    <IfModule mod_alias.c>
        RedirectMatch 403 (?i)([a-z0-9]{2000,})
        RedirectMatch 403 (?i)(https?|ftp|php):/
        RedirectMatch 403 (?i)(base64_encode)(.*)(\()
        RedirectMatch 403 (?i)(=\\\'|=\\%27|/\\\'/?)\.
        RedirectMatch 403 (?i)/(\$(\&)?|\*|\"|\.|,|&|&?)/?$
        RedirectMatch 403 (?i)(\{0\}|\(/\(|\.\.\.|\+\+\+|\\\"\\\")
        RedirectMatch 403 (?i)(~|`|<|>|:|;|,|%|\\|\{|\}|\[|\]|\|)
        RedirectMatch 403 (?i)/(=|\$&|_mm|cgi-|muieblack)
        RedirectMatch 403 (?i)(&pws=0|_vti_|\(null\)|\{\$itemURL\}|echo(.*)kae|etc/passwd|eval\(|self/environ)
        RedirectMatch 403 (?i)\.(aspx?|bash|bak?|cfg|cgi|dll|exe|git|hg|ini|jsp|log|mdb|out|sql|svn|swp|tar|rar|rdf)$
        RedirectMatch 403 (?i)/(^$|(wp-)?config|mobiquo|phpinfo|shell|sqlpatch|thumb|thumb_editor|thumbopen|timthumb|webshell)\.php
    </IfModule>
    # 6G:[USER AGENT]
    <IfModule mod_setenvif.c>
        SetEnvIfNoCase User-Agent ([a-z0-9]{2000,}) bad_bot
        SetEnvIfNoCase User-Agent (archive.org|binlar|casper|checkpriv|choppy|clshttp|cmsworld|diavol|dotbot|extract|feedfinder|flicky|g00g1e|harvest|heritrix|httrack|kmccrew|loader|miner|nikto|nutch|planetwork|postrank|purebot|pycurl|python|seekerspider|siclab|skygrid|sqlmap|sucker|turnit|vikspider|winhttp|xxxyy|youda|zmeu|zune) bad_bot
        
        # Apache < 2.3
        <IfModule !mod_authz_core.c>
            Order Allow,Deny
            Allow from all
            Deny from env=bad_bot
        </IfModule>
        # Apache >= 2.3
        <IfModule mod_authz_core.c>
            <RequireAll>
                Require all Granted
                Require not env bad_bot
            </RequireAll>
        </IfModule>
    </IfModule>
  3. Salva e verifica
    Dopo aver salvato il file, testa il sito per assicurarti che le modifiche non interferiscano con le sue funzionalità. Controlla anche i log del server per verificare che le richieste indesiderate siano bloccate.

Vantaggi dell’approccio

  • Riduzione del carico del server: Filtrando il traffico indesiderato direttamente a livello server, si evitano richieste superflue al CMS.
  • Flessibilità: Il file .htaccess consente modifiche rapide senza necessità di plugin aggiuntivi.
  • Compatibilità con WordPress: Puoi integrare il 6G Firewall insieme ad altre regole di sicurezza specifiche per WordPress.

Considerazioni finali

Il 6G Firewall è una soluzione valida per la sicurezza di piccoli e medi siti web. Tuttavia, per siti più complessi o con elevate esigenze di sicurezza, considera l’utilizzo di firewall applicativi (WAF) o servizi CDN con funzioni anti-bot integrate.

Contattaci se hai bisogno di una consulenza per la sicurezza del tuo sito

Se ti è piaciuto questo articolo riguardo Bloccare bot e visite indesiderate con htaccess e 6G Firewall condividilo sui social:
Dal 2010 supportiamo le aziende nella pianificazione e nello sviluppo di strategie mirate per una presenza efficace e professionale sul web e sui social media. Ecco tutto quello che possiamo fare per la tua attività.

Articoli correlati