comment optimiser et sécuriser son site via le fichier .htaccess ?

bg62bg62 Member
juillet 2023 modifié dans Entraide

avec .htaccess, semble-t-il il y a une foule de possibilités qui restent totalement ignorées du Monsieur Tout Le monde :angry:
Alors, si l'on pouvait, ici, se donner le plus d'astuces possibles ce serait TOP, principalement pour l'optimisation et la sécurité du site ... mais pas que ... :+1:
Personnellement voici 'mon' début :

" #pour forcer les https
RewriteEngine On
RewriteCond %{HTTP:HTTPS} !on
RewriteRule (.) https://%{SERVER_NAME}/$1 [QSA,L,R=301]
#la partie créée par PluXml lors de l'activation de la ré écriture des urls
# BEGIN -- Pluxml
Options -Multiviews

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
# Réécriture des urls
RewriteRule ^(?!feed)(.
)$ index.php?$1 [L]
RewriteRule ^feed\/(.*)$ feed.php?$1 [L]

# END -- Pluxml "

Réponses

  • En fait il y a un très grand nombre de chose qui peuvent être faîtes.

    par exemple pour réduire le nombre de bot qui attaque wordpress, j'ai ajouté ces deux lignes:

    RewriteCond %{QUERY_STRING} wp- [OR] RewriteCond %{PATH_INFO} wp- RewriteRule .* /410 [L] 
    RewriteCond %{QUERY_STRING} wp- [OR] RewriteCond %{PATH_INFO} wordpress RewriteRule .* /410 [L] 
    

    Ce qui réduit considérablement les visites de ces indésirables, aprés j'ai mis un 410 , mais on peut choisir un autre code d'erreur.
    Il y a aussi ce sujet trés trés intéressant : https://forum.pluxml.org/discussion/7312/optimisation-et-securisation-de-pluxml#latest ;)


    Cordialement,
    gcyrillus

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • OK merci, mais ...

    • ce que tu me mets concerne WP ... et pour PluXml ?
    • si je suis le lien que tu m'as mis ( je l'avais déjà vu ) il est question de code dans la partie "header" : ne pourrait-on pas le remplacer par différentes lignes dans le .htaccess pour ne toucher que à un seul fichier ,,, ?
    • question à 1000b : tu fais comment pour insérer les lignes de code comme dans ta réponse précédente ?
      :+1:
  • Pour PluXml ,

    • le seul truc que je fais , c'est de renvoyé les URL qui mènent nulle-part (vu comme un mode inconnu) sur la page d'erreur de PluXml au lieu de la page d'accueil (c'est suite à une mise à jour de PluXml version 5.7 que l'on à ce défaut) (soit modif de plxMotor soit mise en place d'un plugin).

    • Il y a surement moyen de repasser certaines choses dans le fichier htaccess si PluXml est seul, pas de soucis, autrement ce serait peut-être. incompatible ou contradictoire avec d'autre script , je ne suis pas franchement un expert .

    • j’édite tout simplement le fichier .htaccess avec mon éditeur (généralement notepad++) dans la partie

    <IfModule mod_rewrite.c> 
    # ici les deux lignes 
     <IfModule>
    


    Cordialement,
    gcyrillus

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • bg62bg62 Member
    juillet 2023 modifié

    ok et au niveau " vitesse " et plus .... mise en cache etc etc ... avec les nouvelles exigences de Google y-a-t-il quelque chose de possible à faire via le .htaccess ?
    il fut un temps où j'avais trouvé ceci :

    interdire l'accés aux répertoires sans fichiers index

    Options -Indexes

    ----------------------------------------------------------------------

    EXPIRES CACHING


    ExpiresActive On
    ExpiresDefault "access plus 1 month"
    ExpiresByType text/cache-manifest "access plus 0 seconds"
    ExpiresByType text/html "access plus 0 seconds"
    ExpiresByType text/xml "access plus 0 seconds"
    ExpiresByType application/xml "access plus 0 seconds"
    ExpiresByType application/json "access plus 0 seconds"
    ExpiresByType application/rss+xml "access plus 1 hour"
    ExpiresByType application/atom+xml "access plus 1 hour"
    ExpiresByType image/gif "access plus 1 month"
    ExpiresByType image/png "access plus 1 month"
    ExpiresByType image/jpg "access plus 1 month"
    ExpiresByType image/jpeg "access plus 1 month"
    ExpiresByType image/x-icon "access plus 1 month"
    ExpiresByType video/ogg "access plus 1 month"
    ExpiresByType audio/ogg "access plus 1 month"
    ExpiresByType video/mp4 "access plus 1 month"
    ExpiresByType video/webm "access plus 1 month"
    ExpiresByType text/x-component "access plus 1 month"
    ExpiresByType application/x-font-ttf "access plus 1 month"
    ExpiresByType font/opentype "access plus 1 month"
    ExpiresByType application/x-font-woff "access plus 1 month"
    ExpiresByType application/x-font-woff2 "access plus 1 month"
    ExpiresByType image/svg+xml "access plus 1 month"
    ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
    ExpiresByType text/css "access plus 1 year"
    ExpiresByType application/javascript "access plus 1 year"
    ExpiresByType text/x-javascript "access plus 1 month"
    ExpiresByType application/pdf "access plus 1 month"
    ExpiresByType application/x-shockwave-flash "access plus 1 month"
    ExpiresByType image/x-icon "access plus 1 month"

    END Expire headers

    BEGIN Cache-Control Headers



    Header set Cache-Control "max-age=2592000, public"


    Header set Cache-Control "max-age=2592000, private"


    Header set Cache-Control "max-age=7200, public"

    Disable caching for scripts and other dynamic files


    Header unset Cache-Control

    END Cache-Control Headers

    KILL THEM ETAGS

    Header unset ETag
    FileETag none

    PROTECTION


    Header unset X-Powered-By
    Header add X-Powered-By "www.unesourisetmoi.info"

    Header set X-Permitted-Cross-Domain-Policies "none"

    ANTI CLICKJACKING

    Header set X-Frame-Options "DENY"

    Header unset X-Frame-Options

    PROTECTION XSS SCRIPTS IE8/9

    Header set X-XSS-Protection "1; mode=block"

    Header unset X-XSS-Protection

    PREVENT SNIFFING MIME IE

    Header set X-Content-Type-Options "nosniff"

    Header always set X-Content-Type-Options "nosniff"

    Only allow JavaScript from the same domain to be run.

    Don't allow inline JavaScript to run.

    Header set X-Content-Security-Policy "allow 'self';"

    Masquer les informations du serveur

    ServerSignature Off

    Strict Transport Security

    Header set Strict-Transport-Security "max-age=31536000; includeSubDomains"
    AddType application/vnd.ms-fontobject .eot
    AddType font/ttf .ttf
    AddType font/otf .otf
    AddType application/x-font-woff .woff
    AddType application/x-font-woff2 .woff2

    protect the htaccess file


    order allow,deny
    deny from all

    mais je ne sais pas si la synthaxe et correcte, ni si l'effet est réel et utile, voire si on peu encore le pousser davantage ...

  • Salut, un fichier htaccess que j'utilise pour mon site, le résultat obtenu avec Mozilla Observatory, ce n'est pas du pluxml mais pour l'exemple des codes ... si ça peut aiguiller ...

    **# PH pagespeed start

    ModPagespeed off
    ModPagespeedRewriteLevel PassThrough
    ModPagespeedEnableFilters add_head,fallback_rewrite_css_urls,flatten_css_imports,rewrite_style_attributes_with_url,extend_cache,convert_meta_tags,combine_javascript,rewrite_javascript,inline_javascript,rewrite_css,combine_css,inline_css,inline_import_to_link,rewrite_images

    PH pagespeed end

    Redirection HTTPS


    RewriteEngine On
    RewriteCond %{HTTPS} !=on
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

    HSTS STRICT TRANSPORT SECURITY


    Header set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" env=HTTPS

    Choix du fuseau horaire

    SetEnv TZ Europe/Paris

    Masquer les informations relatives au serveur :

    ServerSignature Off

    Encodage par défaut des fichiers textes et HTML

    AddDefaultCharset UTF-8

    Expect CT


    Header always set Expect-CT 'enforce ; max-age=86400 ; report-uri="https://adresse.de.monsite.fr/"'

    PROTECTION DIVERSES


    Header always set X-FRAME-OPTIONS "SAMEORIGIN"
    Header always set X-XSS-Protection "1 ; mode=block"
    Header always set X-Content-Type-Options "nosniff"
    Header set Referrer-Policy: "no-referrer"

    Permissions Policy


    Header set Permissions-Policy "geolocation='none';midi='none';notifications= 'none';push='none';sync-xhr='none';microphone='none';camera='none';magnetometer='none';gyroscope='none';speaker='self';vibrate='none';fullscreen='self';payment='none';"

    CONTENT SECURITY POLICY


    Header always set Content-Security-Policy " default-src 'none'; img-src 'self'; style-src 'self' ; base-uri https://adresse.de.monsite.fr/; report-uri https://adresse.de.monsite.fr ; upgrade-insecure-requests ; "

    Autoriser l'utilisation du cache



    ExpiresActive on
    ExpiresDefault "access plus 1 month"

    Mise en cache des fichiers dans le navigateur


    ExpiresActive On

    # Images
    ExpiresByType image/jpg "access plus 1 year"
    ExpiresByType image/jpeg "access plus 1 year"
    ExpiresByType image/gif "access plus 1 year"
    ExpiresByType image/png "access plus 1 year"
    ExpiresByType image/webp "access plus 1 year"
    ExpiresByType image/svg+xml "access plus 1 year"
    ExpiresByType image/x-icon "access plus 1 year"
    ExpiresByType image/ico "access plus 1 year"

    # Video
    ExpiresByType video/mp4 "access plus 1 year"
    ExpiresByType video/mpeg "access plus 1 year"

    # CSS, JavaScript
    ExpiresByType text/css "access plus 1 month"
    ExpiresByType text/javascript "access plus 1 month"
    ExpiresByType application/javascript "access plus 1 month"

    # Autres
    ExpiresByType application/pdf "access plus 1 month"
    ExpiresByType application/x-shockwave-flash "access plus 1 month"

    En-têtes

    Header unset ETag
    FileETag None



    Header set Cache-Control "public"


    Header set Cache-Control "public"


    Header set Cache-Control "private"


    Header set Cache-Control "private, must-revalidate "

    Compressions des fichiers statiques


    AddOutputFilterByType DEFLATE text/xhtml text/html text/plain text/xml text/javascript application/x-javascript text/css
    BrowserMatch ^Mozilla/4 gzip-only-text/html
    BrowserMatch ^Mozilla/4.0[678] no-gzip
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
    SetEnvIfNoCase Request_URI .(?:gif|jpeg|jpg|png)$ no-gzip dont-vary
    Header append Vary User-Agent env=!dont-vary

    AddOutputFilterByType DEFLATE text/html
    AddOutputFilterByType DEFLATE text/plain
    AddOutputFilterByType DEFLATE text/xml
    AddOutputFilterByType DEFLATE text/css
    AddOutputFilterByType DEFLATE text/javascript
    AddOutputFilterByType DEFLATE font/opentype
    AddOutputFilterByType DEFLATE application/rss+xml
    AddOutputFilterByType DEFLATE application/javascript
    AddOutputFilterByType DEFLATE application/json

    preserve la bande passante pour les serveurs PHP activés


    php_value zlib.output_compression 16386

    protège contre DOS attacks en limitant la taille de téléchargement

    LimitRequestBody 5240000

    Optimisons les éléments favorables au référencement naturel (SEO)

    Retirer l'expression "category" de vos urls

    RewriteRule ^category/(.+)$ https://adresse.de.monsite.fr/$1 [R=301,L]

    interdire l'accès aux robots malveillants, aux pirates de sites, aux navigateurs hors ligne et aux autres saloperies

    RewriteBase /
    RewriteCond %{HTTP_USER_AGENT} ^Anarchie [OR]
    RewriteCond %{HTTP_USER_AGENT} ^ASPSeek [OR]
    RewriteCond %{HTTP_USER_AGENT} ^attach [OR]
    RewriteCond %{HTTP_USER_AGENT} ^autoemailspider [OR]
    RewriteCond %{HTTP_USER_AGENT} ^Xaldon\ WebSpider [OR]
    RewriteCond %{HTTP_USER_AGENT} ^Xenu [OR]
    RewriteCond %{HTTP_USER_AGENT} ^Zeus.*Webster [OR]
    RewriteCond %{HTTP_USER_AGENT} ^Zeus

    les envoyer à un trou noir virtuel de fausses adresses électroniques

    RewriteRule ^.*$ http://english-61925045732.spampoison.com [R,L]**

    Il y a de temps en temps des nouvelles mesures, c'est donc à surveiller régulièrement.

    Amicalement

  • Il y a aussi : https://perishablepress.com/7g-firewall-log-blocked-requests/
    Plutôt facile à compléter au besoin


    Cordialement,
    gcyrillus

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

Connectez-vous ou Inscrivez-vous pour répondre.