Created
March 21, 2014 09:43
-
-
Save sdeluce/9682815 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| ############################################################################################ | |
| ## The Master .htaccess | |
| ## | |
| ## Version 3.3 fr | |
| ## | |
| ##----------- | |
| ## Ce fichier est conçu pour être le modèle de fichier .htaccess | |
| ## à mettre sur vos nouveaux sites, augmenter la sécurité et | |
| ## la performance de votre site. Il n'est pas destiné à être juste mis | |
| ## sur votre site. Vous devez passer par toutes ses sections et de le modifier | |
| ## en fonction de votre site. Plus particulièrement, toutes les instances | |
| ## de example.com doivent être remplacés avec votre nom de domaine réel. | |
| ## | |
| ## Certaines sections sont trop pointilleux et peuvent causer des problèmes | |
| ## avec les demandes légitimes. Vous êtes responsable de les désactiver | |
| ## ou de l'écriture des règles d'exception pour vos demandes. | |
| ## Plus particulièrement, la section de la protection des serveurs de pointe | |
| ## entraînera des problèmes avec plusieurs minifiers, eXtplorer, VirtueMart | |
| ## et autres extensions qui utilisent des scripts non-standard que leurs points d'entrée. | |
| ## Vous devez ajouter des exceptions pour eux manuellement. | |
| ## | |
| ## Certaines sections en fonction de la configuration de votre serveur | |
| ## peuvent causer votre site des 500 Internal Server Error. | |
| ## La seule façon de savoir laquelle est la cause est d'essayer et de voir. | |
| ## | |
| ## Je vous remercie Brian Teeman, Ken Crowder, Radek Suski et Fotis Evangelou | |
| ## pour partager leurs règles .htaccess avec le monde et d'inspirer la création | |
| ## de ce fichier. Un merci spécial à Jon Brown pour le partage de ses recherches | |
| ## et de m'aider à améliorer ce fichier. | |
| ## | |
| ## Remerciement aussi à John pour ses remarques et g1smd de prendre le temps | |
| ## d'optimiser la vitesse du fichier. | |
| ## | |
| ## Il est généralement prudent de supprimer les commentaires dans le fichier | |
| ## lorsque vous l'utilisez sur un hôte réel pour réduire le temps d'analyse. | |
| ## | |
| ## --------------------------------------------------------------------------------------- | |
| ## Voulez-vous personnaliser ce fichier .htaccess en quelques clics? "Admin Tools Professional" | |
| ## par AkeebaBackup.com fait cela, et bien plus encore. | |
| ## | |
| ## En savoir plus: http://www.akeebabackup.com/software/admin-tools.html | |
| ## --------------------------------------------------------------------------------------- | |
| ## | |
| ## Amusez-vous, rester en sécurité. | |
| ## | |
| ## Nicholas K. Dionysopoulos | |
| ## Lead Developer, AkeebaBackup.com | |
| ## | |
| ## Changelog: | |
| ## Version 3.3 (en attente de la publication) | |
| ## - Version 3.2 n'a pas été testé et tué certains sites | |
| ## Version 3.2 (8e Avril 2011) | |
| ## - Quelques légères améliorations ayant un impact négligeable sur les performances | |
| ## Version 3.1 (5e Avril 2011) | |
| ## - Temps d'expiration des ressources statiques ajusté à 1 mois au lieu de 1 an. | |
| ## - GET variables non répercuté dans le index.php à la redirection racine du site | |
| ## - Corrections des fautes | |
| ## - Alternative pour HTTP redirection HTTPS | |
| ## - Commune exploite protection : Des changements mineurs dans les commentaires , règle de base64_encode/base64_decode combinée | |
| ## - Bug dans la requête règle de protection de chaîne | |
| ## - Back-end et front-end d'optimisation de la protection | |
| ## - Fixe la règle UNION SELECT SQLi de travailler effectivement contre des attaques réelles | |
| ## - Commentaires Ajouté à Joomla ! section SEF noyau | |
| ## Version 3.0 (28e Mars 2011) | |
| ## - Réécriture massive | |
| ## Version 2.3 (18e Novembre , 2010) | |
| ## - Ajouté .ico aux règles de passage, pour les favicons à charger | |
| ## Version 2.2 (25e Octobre , 2010) | |
| ## - Bug dans le tmpl = règle de composant | |
| ## Version 2.1 (19e Octobre , 2010) | |
| ## - Index.php à la racine redirection tuerait des requêtes AJAX | |
| ## - Filtrage Referer a foiré | |
| ## - Simplifiée et le code PHP plus approfondie Easter Egg ( merci Jon ! ) | |
| ## - Le template filtre tmpl tp n'était pas complète et tué certains composants | |
| ## - Optimisé Joomla ! section SEF noyau | |
| ## - Filtres Bot et l'optimisation GZip ne serai jamais lancer pour le contenu dynamique | |
| ## - Optimisation du contenu d'expiration s'est plus optimisée | |
| ## - Règle Ajouté ETag | |
| ## | |
| ############################################################################################ | |
| ######### Début - RewriteEngine activé | |
| RewriteEngine On | |
| ######### Fin - RewriteEngine activé | |
| ######### Début - RewriteBase | |
| # Décommentez la ligne suivante si l'URL de votre serveur web | |
| # N'est pas directement liée aux chemins de fichiers physiques. | |
| # Mettre à jour votre Joomla! Dossier (juste / pour root) | |
| # RewriteBase / | |
| ######### Fin - RewriteBase | |
| ######### Début - Pas de liste du répertoire | |
| ## Note: +FollowSymlinks peuvent causer des problèmes et vous pourriez avoir besoin de enlever | |
| IndexIgnore * | |
| Options +FollowSymLinks All -Indexes | |
| ######### Fin - Pas de listing du répertoire | |
| ######### Début - L'ordre d'exécution de fichiers, par Komra.de | |
| DirectoryIndex index.php index.html | |
| ######### Fin - L'ordre d'exécution de fichiers | |
| ########## Début - ETag Optimisation | |
| ## Cette règle va créer un ETag pour les fichiers basés uniquement sur la modification | |
| ## d'horodatage et leur taille. Cela fonctionne à merveille si vous utilisez des serveurs rsync'ed, | |
| ## où le nombre d'inodes de fichiers identiques diffère. | |
| ## Remarque: Il peut causer des problèmes sur votre serveur et vous devrez peut-être retirer | |
| FileETag MTime Size | |
| ########## Fin - ETag Optimisation | |
| ########## Début - Temps d'expiration par défaut optimal | |
| ## Remarque: cela pourrait causer des problèmes et vous pourriez avoir à le commenter | |
| ## en plaçant un # en face de cette section lignes | |
| ## Note: Certaines personnes préfèrent utiliser "maintenant, plus un mois"("now, plus 1 month") | |
| ## au lieu de "maintenant plus de 1 an"("now, plus 1 year"). | |
| ## A votre goût. | |
| <IfModule mod_expires.c> | |
| # Activation du contrôle d'expiration | |
| ExpiresActive On | |
| # Expiration par défaut: 1 heure après la requête | |
| ExpiresDefault "now plus 1 hour" | |
| # Expiration CSS et JS : 1 semaine après la requête | |
| ExpiresByType text/css "now plus 1 week" | |
| ExpiresByType application/javascript "now plus 1 week" | |
| ExpiresByType application/x-javascript "now plus 1 week" | |
| # Expiration des fichiers d'image : 1 mois après la requête | |
| ExpiresByType image/bmp "now plus 1 month" | |
| ExpiresByType image/gif "now plus 1 month" | |
| ExpiresByType image/jpeg "now plus 1 month" | |
| ExpiresByType image/jp2 "now plus 1 month" | |
| ExpiresByType image/pipeg "now plus 1 month" | |
| ExpiresByType image/png "now plus 1 month" | |
| ExpiresByType image/svg+xml "now plus 1 month" | |
| ExpiresByType image/tiff "now plus 1 month" | |
| ExpiresByType image/vnd.microsoft.icon "now plus 1 month" | |
| ExpiresByType image/x-icon "now plus 1 month" | |
| ExpiresByType image/ico "now plus 1 month" | |
| ExpiresByType image/icon "now plus 1 month" | |
| ExpiresByType text/ico "now plus 1 month" | |
| ExpiresByType application/ico "now plus 1 month" | |
| ExpiresByType image/vnd.wap.wbmp "now plus 1 month" | |
| ExpiresByType application/vnd.wap.wbxml "now plus 1 month" | |
| ExpiresByType application/smil "now plus 1 month" | |
| # Expiration des fichiers audio : 1 mois après la requête | |
| ExpiresByType audio/basic "now plus 1 month" | |
| ExpiresByType audio/mid "now plus 1 month" | |
| ExpiresByType audio/midi "now plus 1 month" | |
| ExpiresByType audio/mpeg "now plus 1 month" | |
| ExpiresByType audio/x-aiff "now plus 1 month" | |
| ExpiresByType audio/x-mpegurl "now plus 1 month" | |
| ExpiresByType audio/x-pn-realaudio "now plus 1 month" | |
| ExpiresByType audio/x-wav "now plus 1 month" | |
| # Expiration des fichiers vidéo : 1 mois après la requête | |
| ExpiresByType application/x-shockwave-flash "now plus 1 month" | |
| ExpiresByType x-world/x-vrml "now plus 1 month" | |
| ExpiresByType video/x-msvideo "now plus 1 month" | |
| ExpiresByType video/mpeg "now plus 1 month" | |
| ExpiresByType video/mp4 "now plus 1 month" | |
| ExpiresByType video/quicktime "now plus 1 month" | |
| ExpiresByType video/x-la-asf "now plus 1 month" | |
| ExpiresByType video/x-ms-asf "now plus 1 month" | |
| </IfModule> | |
| ########## Fin - Temps d'expiration optimal | |
| ########## Début - Bloqueur d'outils de piratage commune et limitateur de la bande passante | |
| ## Par SigSiu.net et @nikosdion. | |
| # Cette ligne désactive également Akeeba Remote Control 2.5 et versions antérieures | |
| SetEnvIf user-agent "Indy Library" stayout=1 | |
| # ATTENTION: La désactivation wget bloque également | |
| # la méthode la plus courante pour l'exécution de tâches cron. | |
| # Retirez si vous avez des problèmes avec Cron jobs. | |
| SetEnvIf user-agent "Wget" stayout=1 | |
| # Les règles suivantes sont pour la bande passante monopolisant le téléchargement d'outil | |
| SetEnvIf user-agent "libwww-perl" stayout=1 | |
| SetEnvIf user-agent "Download Demon" stayout=1 | |
| SetEnvIf user-agent "GetRight" stayout=1 | |
| SetEnvIf user-agent "GetWeb!" stayout=1 | |
| SetEnvIf user-agent "Go!Zilla" stayout=1 | |
| SetEnvIf user-agent "Go-Ahead-Got-It" stayout=1 | |
| SetEnvIf user-agent "GrabNet" stayout=1 | |
| SetEnvIf user-agent "TurnitinBot" stayout=1 | |
| # Cette ligne refuse l'accès à tous les outils ci-dessus | |
| deny from env=stayout | |
| ########## Fin - Bloqueur d'outils de piratage commune et limitateur de la bande passante | |
| ########## Début - compression automatique des ressources | |
| # Compresse le texte, html, javascript, css, xml, kudos vers Komra.de | |
| # Peut tuer l'accès à votre site pour les anciennes versions d'Internet Explorer | |
| # Le serveur doit être compilé avec mod_deflate sinon il enverra HTTP 500 erreur. | |
| # Mod_deflate n'est pas disponible sur Apache série 1.x. Ne peut être utilisé qu'avec Apache 2.x serveur. | |
| # AddOutputFilterByType est maintenant obsolète par Apache. Utilisez mod_filter à l'avenir. | |
| AddOutputFilterByType DEFLATE text/plain text/html text/xml text/css application/xml application/xhtml+xml application/rss+xml application/javascript application/x-javascript | |
| ########## Fin - Compression automatique des ressources | |
| ########## Début - Redirection de Google Apps, par Komra.de | |
| ## Décommentez la ligne suivante pour l'activer : | |
| # RewriteRule ^mail http://mail.google.com/a/example.com [R=301,L] | |
| ## Si ce qui précède ne fonctionne pas sur votre serveur, essayez ceci: | |
| # RewriteRule ^mail http://mail.google.com/a/example.com [R,L] | |
| ########## Fin - Redirection de Google Apps | |
| ########## Début - Redirection index.php vers / | |
| ## Note: Modifier example.com pour reflecter votre domaine | |
| RewriteCond %{THE_REQUEST} !^POST | |
| RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/ | |
| RewriteCond %{SERVER_PORT}>s ^(443>(s)|[0-9]+>s)$ | |
| RewriteRule ^index\.php$ http%2://www.example.com/$1 [R=301,L] | |
| # Si ce qui précède ne fonctionne pas sur votre serveur, essayez plutôt ceci: | |
| # RewriteRule ^index\.php$ http%2://www.example.com/$1 [R,L] | |
| ########## Fin - Redirection index.php vers / | |
| ########## Début - Redirection non-www vers www | |
| RewriteCond %{HTTP_HOST} !^www\. [NC] | |
| RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] | |
| ## Si ce qui précède lève une erreur HTTP 500, échange [R = 301, L] avec [R, L] | |
| ########## Fin - Redirection non-www vers www | |
| ########## Début - Redirection www vers non-www | |
| ## Attention : Commentez la règle non-www vers www si vous choisissez d'utiliser cela | |
| # RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] | |
| # RewriteRule ^(.*)$ http://%1/$1 [R=301,L] | |
| ## Si ce qui précède lève une erreur HTTP 500, échange [R = 301, L] avec [R, L] | |
| ########## Fin - Redirection www vers non-www | |
| ########## Début - Redirection (www.)anciendomain.com vers www.example.com | |
| ## Note : anciendomain.com est votre ancien domaine, vous souhaitez rediriger vers example.com, | |
| ## Alors que www.example.com est le nouveau nom de domaine que vous souhaitez rediriger depuis anciendomain.com. | |
| ## Changer ces noms en fonction de votre configuration actuelle. Rappelez-vous, | |
| ## Cet partie du fichier est censée être placé dans www.olddomain.com! | |
| ## Note: Remplacer [R = 301, L] avec [R, L] si vous obtenez l'erreur 500. | |
| ## Décommentez la ligne suivante pour l'activer : | |
| # RewriteCond %{HTTP_HOST} ^(www\.)?olddomain\.com [NC] | |
| # RewriteRule (.*) http://www.example.com/$1 [R=301,L] | |
| ########## Fin - Redirection olddomain.com vers www.example.com | |
| ########## Début - Force HTTPS dans certaines pages | |
| # Force la page foobar.html à s'ouvrir en https, peu importe ce que dit Joomla! | |
| # Ceci est un exemple de redirection pour foobar.html. Ne noter que vous devez changer | |
| ## www.example.com pour refléter votre propre nom de domaine. N'oubliez pas d'échapper l'utilisation des points | |
| # \. dans le côté gauche de chaque règle. Vous avez besoin de DEUX LIGNES PAR URL de la règle pour travailler. | |
| RewriteCond %{SERVER_PORT} !^443$ | |
| ## Sinon, commenter la ligne ci-dessus et décommentez la ligne suivante: | |
| # RewriteCond %{HTTPS} ^off$ [NC] | |
| RewriteRule ^foobar\.html$ https://www.example.com/foobar.html [R=301,L] | |
| ## NOTE: Si vous avez un HTTP 500 error, échanger [R=301,L] avec [R,L] | |
| # Ajouter plus de règles ci-dessous de cette ligne | |
| ########## Fin - Force HTTPS dans certaines pages | |
| ########## Début - Réécrire les règles pour bloquer certains exploits | |
| ## Si vous rencontrez des problèmes sur votre site bloquer les opérations énumérées ci-dessous | |
| ## Cette tentative de bloquer le type le plus commun de `tentatives` d'exploitation à Joomla! | |
| # | |
| # Si la requête demande une chaine qui contient / proc / self / environ (par SigSiu.net) | |
| RewriteCond %{QUERY_STRING} proc/self/environ [OR] | |
| # Injection variables hérités | |
| RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR] | |
| # Bloquer n'importe quel script essayant d'aller sur base64_encode/base64_decode envoyer via l'URL | |
| RewriteCond %{QUERY_STRING} base64_(en|de)code\(.*\) [OR] | |
| ## IMPORTANT : Si la ligne ci-dessus renvoie une erreur HTTP 500, remplacer par ces deux lignes: | |
| # RewriteCond %{QUERY_STRING} base64_encode\(.*\) [OR] | |
| # RewriteCond %{QUERY_STRING} base64_decode\(.*\) [OR] | |
| # Bloquer tout script qui inclut une balise <script> dans l'URL | |
| RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR] | |
| # Bloquer tout script qui essaye de définir une variable PHP GLOBALS via l'URL | |
| RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR] | |
| # Bloquer tout script qui essaye de modifier une variable _REQUEST via l'URL | |
| RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) | |
| # Retourne un 403 accès interdit et affiche le contenu de la page d'accueil de racine | |
| RewriteRule .* index.php [F] | |
| # | |
| ########## Fin - Réécrire les règles pour bloquer certains exploits | |
| ########## Début - Protection d'injection de fichier, par SigSiu.net | |
| RewriteCond %{REQUEST_METHOD} GET | |
| RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=http:// [OR] | |
| RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(\.\.//?)+ [OR] | |
| RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=/([a-z0-9_.]//?)+ [NC] | |
| RewriteRule .* - [F] | |
| ########## Fin - Protection d'injection de fichier | |
| ########## Début - Règles exceptions avancées de la protection du serveur | |
| ## | |
| ## Ce sont des échantillons d'exceptions à la protection avancée du serveur 3.0 | |
| ## Règle énoncée plus bas de ce fichier. | |
| ## | |
| ## Autoriser UddeIM CAPTCHA | |
| RewriteRule ^components/com_uddeim/captcha15\.php$ - [L] | |
| ## Autoriser Phil Taylor's Turbo Gears | |
| RewriteRule ^plugins/system/GoogleGears/gears-manifest\.php$ - [L] | |
| ## Autoriser JoomlaWorks AllVideos | |
| RewriteRule ^plugins/content/jw_allvideos/includes/jw_allvideos_scripts\.php$ - [L] | |
| ## Autoriser Admin Tools Joomla! Mettre à jour pour le faire fonctionner | |
| RewriteRule ^administrator/components/com_admintools/restore\.php$ - [L] | |
| ## Autoriser Akeeba Backup Professional's, integrer le script de restoration pour qu'il fonctionne | |
| RewriteRule ^administrator/components/com_akeeba/restore\.php$ - [L] | |
| ## Autoriser Akeeba Kickstart | |
| RewriteRule ^kickstart\.php$ - [L] | |
| # Ajouter ici plus de règles pour les fichiers simples PHP | |
| ## Autoriser les pièces jointes Agora, mais pas les fichiers PHP dans ce répertoire! | |
| RewriteCond %{REQUEST_FILENAME} !(\.php)$ | |
| RewriteCond %{REQUEST_FILENAME} -f | |
| RewriteRule ^components/com_agora/img/members/ - [L] | |
| # Ajouter plus de règles pour permettre un accès complet (à l'exception des fichiers PHP) sur plusieurs répertoires ici | |
| #RewriteRule ^cache/ - [L] | |
| ## Uncomment to allow full access to the tmp directory (pas fortement recommandé!) | |
| #RewriteRule ^tmp/ - [L] | |
| # Ajouter ici plus de règles d'accès complet | |
| ########## Fin - Règles exceptions avancées de la protection du serveur | |
| ########## Début - Protection avancée du serveur | |
| # Protection avancée du serveur, version 2.0 - August 2010 | |
| # by Nicholas K. Dionysopoulos | |
| # traduction par Gary | |
| ## Filtrage de la Référence pour les fichiers multimédias communs. | |
| ## Remplacez par votre propre nom de domaine. | |
| ## Note: Changer www\.example\.com avec votre nom de domaine, substituer les | |
| ## points avec \., i.e.: www\.example\.com en www.example.com | |
| RewriteRule ^images/stories/.*\.(jp(e?g|2)?|png|gif|bmp|css|js|swf|ico)$ - [L] | |
| RewriteCond %{HTTP_REFERER} . | |
| RewriteCond %{HTTP_REFERER} !^https?://(www\.)?example\.com [NC] | |
| RewriteCond %{REQUEST_FILENAME} -f | |
| RewriteRule \.(jp(e?g|2)?|png|gif|bmp|css|js|swf|ico)$ - [F] | |
| ## Interdire l'empreinte visuelle de Joomla! | |
| ## Idée initiale par Brian Teeman et Ken Crowder, voir: | |
| ## http://www.slideshare.net/brianteeman/hidden-joomla-secrets | |
| ## Améliorer par @nikosdion | |
| RewriteCond %{QUERY_STRING} (^|&)tmpl=(component|system) [NC] | |
| RewriteRule .* - [L] | |
| RewriteCond %{QUERY_STRING} (^|&)t(p|emplate|mpl)= [NC] | |
| RewriteRule .* - [F] | |
| ## Interdire les fonctions caché en PHP | |
| ## Voir : http://www.0php.com/php_easter_egg.php | |
| ## http://osvdb.org/12184 pour plus d'information | |
| RewriteCond %{QUERY_STRING} \=PHP[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12} [NC] | |
| RewriteRule .* - [F] | |
| ## Protection en arrière plan | |
| ## Cela bloque également les attaques empreintes parcourant XML et des fichiers INI | |
| RewriteRule ^administrator/?$ - [L] | |
| RewriteRule ^administrator/index\.(php|html?)$ - [L] | |
| RewriteRule ^administrator/index[23]\.php$ - [L] | |
| RewriteRule ^administrator/(components|modules|templates|images|plugins)/.*\.(jp(e?g|2)?|png|gif|bmp|css|js|swf|html?|mp(eg?|[34])|avi|wav|og[gv]|xlsx?|docx?|pptx?|zip|rar|pdf|xps|txt|7z|svg|od[tsp]|flv|mov)$ - [L] | |
| RewriteRule ^administrator/ - [F] | |
| ## Autoriser explicitement l'accès uniquement à la XML-RPC (xmlrpc/index.php) ou au répertoire xmlrpc/ | |
| RewriteRule ^xmlrpc/(index\.php)?$ - [L] | |
| RewriteRule ^xmlrpc/ - [F] | |
| ## Interdire l'accès premier plan pour certains répertoires système de Joomla! | |
| RewriteRule ^includes/js/ - [L] | |
| RewriteRule ^(cache|includes|language|libraries|logs|tmp)/ - [F] | |
| ## Autoriser un accès limité pour certains répertoires système avec un contenu accessible par les clients de Joomla! | |
| RewriteRule ^(components|modules|plugins|templates)/.*\.(jp(e?g|2)?|png|gif|bmp|css|js|swf|html?|mp(eg?|[34])|avi|wav|og[gv]|xlsx?|docx?|pptx?|zip|rar|pdf|xps|txt|7z|svg|od[tsp]|flv|mov)$ - [L] | |
| ## Décommentez cette ligne si vous avez des extensions qui nécessitent un accès direct à leur propre | |
| ## Fichiers index.php personnalisé. Notez que ce n'est pas sécuritaire et le développeur devrait avoir honte | |
| ## Pour être si boiteux, paresseux. | |
| # RewriteRule ^(components|modules|plugins|templates)/.*(index\.php)?$ - [L] | |
| ## Décommentez la ligne suivante si votre template nécessite un accès direct aux fichiers PHP | |
| ## à l'intérieur de son répertoire, par exemple des copies compressées GZip de ses fichiers CSS | |
| # RewriteRule ^templates/.*\.php$ - [L] | |
| ##Interdire l'accès aux fichiers malveillants en PHP dans tout le site, sauf si elles sont explicitement autorisés | |
| RewriteCond %{REQUEST_FILENAME} (\.php)$ | |
| RewriteCond %{REQUEST_FILENAME} !(/index[23]?\.php)$ | |
| RewriteCond %{REQUEST_FILENAME} -f | |
| RewriteRule (.*\.php)$ - [F] | |
| Interdire l'accès aux htaccess.txt et configuration.php-dist | |
| RewriteRule ^(htaccess\.txt|configuration\.php-dist|php\.ini)$ - [F] | |
| ## SQLi première ligne de défense, grâce à Radek Suski (SigSiu.net) @ | |
| ## http://www.sigsiu.net/presentations/fortifying_your_joomla_website.html | |
| ## Peut causer des problèmes sur les demandes légitimes | |
| RewriteCond %{QUERY_STRING} concat.*\( [NC,OR] | |
| RewriteCond %{QUERY_STRING} union.*select.*\( [NC,OR] | |
| RewriteCond %{QUERY_STRING} union.*all.*select.* [NC] | |
| RewriteRule .* - [F] | |
| ########## Fin - Protection avancée du serveur | |
| ########## Début - Filtre antispam de base, par SigSiu.net | |
| ## J'ai enlevé quelques mots communs, modifier à votre goût | |
| ## Ce code utilise PCRE et ne fonctionne qu'avec Apache 2.x. | |
| ## Ce code ne fonctionnera pas avec les serveurs Apache 1.x. | |
| RewriteCond %{QUERY_STRING} \b(ambien|blue\spill|cialis|cocaine|ejaculation|erectile)\b [NC,OR] | |
| RewriteCond %{QUERY_STRING} \b(erections|hoodia|huronriveracres|impotence|levitra|libido)\b [NC,OR] | |
| RewriteCond %{QUERY_STRING} \b(lipitor|phentermin|pro[sz]ac|sandyauer|tramadol|troyhamby)\b [NC,OR] | |
| ## Remarque: Le RewriteCond finale ne doit pas utiliser la notion [OR]. | |
| RewriteCond %{QUERY_STRING} \b(ultram|unicauca|valium|viagra|vicodin|xanax|ypxaieo)\b [NC] | |
| RewriteRule .* - [F] | |
| ## Remarque: Les lignes précédentes est une version "compressée" | |
| ## des filtres. Vous pouvez ajouter vos propres filtres comme: | |
| ## RewriteCond %{QUERY_STRING} \bbadword\b [NC,OR] | |
| ## où "badword" est le mot que vous voulez exclure | |
| ########## Fin - Filtre antispam de base | |
| ########## Début - Section SEF du Noyau Joomla! | |
| # | |
| RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] | |
| ## Si le chemin et le fichier demandé n'est pas / index.php et la demande | |
| ## n'a pas déjà été réécrit en interne au script index.php | |
| RewriteCond %{REQUEST_URI} !^/index\.php | |
| ## et la demande est pour la racine du site, ou pour une URL sans extension, | |
| ## ou l'URL demandée se termine avec l'une des extensions énumérés | |
| RewriteCond %{REQUEST_URI} /component/|(/[^.]*|\.(php|html?|feed|pdf|raw|ini|zip|json|file|vcf))$ [NC] | |
| ## et le chemin et le fichier demandé ne correspond pas directement un fichier physique | |
| RewriteCond %{REQUEST_FILENAME} !-f | |
| ## et le chemin d'accès demandé ne correspond pas à un dossier physique | |
| RewriteCond %{REQUEST_FILENAME} !-d | |
| ## intérieurement réécrire la requete au script index.php | |
| RewriteRule .* index.php [L] | |
| # | |
| ########## Fin - Section SEF du Noyau Joomla! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment