Forums de WDMédia-Hébergement

Bienvenue sur nos forums

Vous n'êtes pas identifié(e).

#1 30-10-2008 13:33:26

ManicoW
Administrateur WDMédia-Hébergement
Lieu : Tours
Inscription : 18-01-2007
Messages : 339
Site Web

[htaccess] Exemples/sécurité

Salut,

note de l'administrateur :  post initial de luce, repris pour déplacement
note de luce :  réécriture du post

Faire une redirection permanente et provisoire :
Remplace 301 (code pour une redirection permanente) par 302 (redirection temporaire)

## les 2 repertoires et fichier.php peuvent être different
Redirect 301 /repertoire/fichier.php http://www.le_nouveau_site.tld/repertoire/fichier.php

Interdire l'affichage de vos images sur d'autres sites :

RewriteCond %{HTTP_REFERER} !^$
## ensuite on ajoute les sites autorisés à afficher les images
RewriteCond %{HTTP_REFERER} !^http://(www\.)?votre_domaine.tld/.*$ [NC]
## on specifie les extensions à interdire, puis on donne un lien qui va afficher un avertissement
RewriteRule \.(gif|jpg|png)$ http://interdit.votre_domaine.tld/avertissement.gif [R=302,L]
## ATTENTION à ne pas mettre un gif sur le repertoire www puisqu'elle sera aussi interdite
## donc créer un nouveau "sous domaine" interdit, pour y mettre le message en image.

Utiliser des pages d'erreurs personalisé :

##erreurXXX.php est la page d'erreur qui sera affiché
ErrorDocument 401 /erreur401.php
ErrorDocument 403 /erreur403.php
ErrorDocument 404 /erreur404.php
ErrorDocument 500 /erreur500.php

Bannir une IP
Alors, là, on a tout plein de méthode pour bannir les ips, mais voici une qui est simple à ce souvenir via le RewriteEngine :

## on ne met qu'un RewriteEngine On
RewriteEngine On
##on bloc l'ip 123.45.67.123
RewriteCond %{REMOTE_ADDR}  ^123\.45\.67\.123$
##on bloc les ips de 123.45.67.0 à 123.45.67.255
RewriteCond %{REMOTE_ADDR}  ^123\.45\.67\.[0-255]$

Bloquer l'accès à un répertoire
Si vous avez un fichier avec vos informations sql, il est toujours préférable de le mettre dans un répertoire isolé, et d'en interdire l'accès. Donc dans ce répertoire, vous avez juste à mettre un .htaccess avec une ligne, seul le serveur sera autorisé à y accèder.

deny from all

Bloquer un répertoire sauf pour vous
Si par exemple, vous avez un script pour poster une news, mais pas top niveau sécurité, voici une petite astuce via htaccess.
Vous aurez juste à utiliser votre client FTP, pour autoriser votre IP, puis une fois que vous avez fini, vous retirez l'accès

Order deny,allow
deny from all
allow from 86.198.41.55

Remplacez mon IP par votre IP, et quand vous avez fini, mettez la ligne en commentaire de la manière suivante :
##allow from 86.198.41.55

Mise en cache des images
Comme je sais qu'il y a des amateurs de la photo, voici une méthode qui va permettre de mettre en cache toutes vos images, ce qui aura pour effet d'améliorer l'affichage de votre site.
Il faut que ce soit des images qui ne changent pas toutes les 2 minutes !

<FilesMatch "\.(gif|jpg)$">
## timestamp d'une semaine
Header set Cache-Control "max-age=604800"
</FilesMatch>

Nicolas Lafont

Hors ligne

#2 31-10-2008 00:22:54

luce
Modérateur
Lieu : GrandesZoreillesLand
Inscription : 31-03-2007
Messages : 245
Site Web

Re : [htaccess] Exemples/sécurité

Un .htaccess assez... manico ! (oups, Parano)
Je l'ai trouvé il y a quelques jours, mais je sais plus où.

Mais attention, essayez d'ajouter chaque ligne à la fois, parce que suivant votre site, ça pourrait bloquer certaines fonctions.

Par contre, ça devrait limiter les chances de se faire hacker.

Peut-être quelqu'un pourra y ajouter encore plus de chose.

<Files ~ "^(index)\.(p?s?x?htm?|txt|aspx?|cfml?|cgi|pl|php[3-9]|jsp|xml)$">
order allow,deny
deny from all
</Files>
<Files ~ "\.(inc|class|sql|sqlite|ini|conf|exe|dll|bin|tpl|bkp|dat|c|h|py|spd|theme|module)$">
deny from all
</Files>
<Files ~ "^((wp-)?config(\.inc)?|configure|configuration|login|options?\.inc|option|settings?(\.inc)?|functions?(\.inc)?|setup(\.inc)?|default|home|main|install?|admin|errors?|hacke?r?d?|[-_a-z0-9.]*mafia[-_a-z0-9.]*|[-_a-z0-9.]*power[-_a-z0-9.]*|[-_a-z0-9.]*jihad[-_a-z0-9.]*|php|shell|ssh|root|cmd|[0-9]{1,6}|test|data)\.(p?s?x?htm?l?|txt|aspx?|cfml?|cgi|pl|php[3-9]{0,1}|jsp?|sql|xml)$">
order allow,deny
deny from all
</Files>
Options -Indexes
DirectoryIndex index.php
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/robots.txt
RewriteCond %{REQUEST_URI} !^/sitemap.xml
RewriteCond %{HTTP_USER_AGENT} ^-?$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^[bcdfghjklmnpqrstvwxz\ ]{8,}|^[0-9a-z]{15,}|^[0-9A-Za-z]{19,} [OR]
RewriteCond %{HTTP_USER_AGENT} Extractor|almaden|anonymous|autoemailspider|blogsearchbot-martin|CherryPicker|Digger|DirectUpdate|Download\ Accelerator|echo\ extense|Collector|EmailWolf|flashget|frontpage|Go!Zilla|grub\ crawler|HTTPConnect|httplib|HttpProxy|HTTP\ agent|HTTrack|Indy\ Library|Jakarta\ Commons|libWeb|libwww|Microsoft\ Data|Microsoft\ URL|MJ12bot|Movable\ Type|NICErsPRO|NutchCVS|Nutscrape/|OmniExplorer|psycheclone|PussyCat|PycURL|python|QuepasaCreep|SiteMapper|Download|sucker|SurveyBot|Teleport\ Pro|Telesoft|TrackBack|Turing|TurnitinBot|vobsub|webbandit|WebCapture|webcollage|WebCopier|WebDAV|WebEmailExtractor|WebReaper|WEBsaver|WebStripper|WebZIP|widows|Wysigot|Zeus|Zeus.*Webster [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^<sc|^adwords|^curl|^eCatch|^Fetch\ API\ Request|^GT\:\:WWW|^HTTP\:\:Lite|^ia_archive|^Internet\ Explorer|^IPiumBot|^Java/1.|^Java\ 1.|^Kapere|^LWP|^minibot\(NaverRobot\)|^Moozilla|^Mozilla$|^MSIE|^NPBot|^Offline\ Explorer|^Offline\ Navigator|^PEAR|^Program\ Shareware|^URI\:\:Fetch|^user|^User-Agent:\ |^User\ Agent:\ |^Wget [NC]
RedirectMatch gone ^/_vti.*
RedirectMatch gone ^/MSOffice.*
RedirectMatch gone ^[-_a-z0-9/\.]*//.*
RewriteCond %{REQUEST_METHOD} (GET|POST) [NC]
RewriteCond %{QUERY_STRING} ^(.*)(%3C|<)/?script(.*)$ [NC,OR]
RewriteCond %{QUERY_STRING} ^(.*)(%3D|=)?javascript(%3A|:)(.*)$ [NC,OR]
RewriteCond %{QUERY_STRING} ^(.*)document\.location\.href(.*)$ [OR]
RewriteCond %{QUERY_STRING} ^(.*)(%3D|=)http(%3A|:)(/|%2F){2}(.*)$ [NC,OR] 
RewriteCond %{QUERY_STRING} ^(.*)base64_encode(.*)$ [OR]
RewriteCond %{QUERY_STRING} ^(.*)GLOBALS(=|[|%[0-9A-Z]{0,2})(.*)$ [OR]
RewriteCond %{QUERY_STRING} ^(.*)_REQUEST(=|[|%[0-9A-Z]{0,2})(.*)$ [OR]
RewriteCond %{QUERY_STRING} ^(.*)(SELECT|INSERT|DELETE|CHAR\(|UPDATE|REPLACE|LIMIT)(.*)$
RewriteCond %{REQUEST_URI} .*((php|my)?shell|remview.*|phpremoteview.*|sshphp.*|pcom|nstview.*|c99|r57|webadmin.*|phpget.*|phpwriter.*|fileditor.*|locus7.*|storm7.*)\.(p?s?x?htm?l?|txt|aspx?|cfml?|cgi|pl|php[3-9]{0,1}|jsp?|sql|xml) [NC,OR]
RewriteCond %{REQUEST_METHOD} (GET|POST) [NC]
RewriteCond %{QUERY_STRING} ^(.*)=/home(.+)?/loginftp/(.*)$ [OR]
RewriteCond %{QUERY_STRING} ^work_dir=.*$ [OR]
RewriteCond %{QUERY_STRING} ^command=.*&output.*$ [OR]
RewriteCond %{QUERY_STRING} ^nts_[a-z0-9_]{0,10}=.*$ [OR]
RewriteCond %{QUERY_STRING} ^(.*)cmd=.*$ [OR] ## ATTENTION A CETTE REGLE. ELLE PEUT CASSER VOTRE SITE ##
RewriteCond %{QUERY_STRING} ^c=(t|setup|codes)$ [OR]
RewriteCond %{QUERY_STRING} ^act=((about|cmd|selfremove|chbd|trojan|backc|massbrowsersploit|exploits|grablogins|upload.*)|((chmod|f)&f=.*))$ [OR]
RewriteCond %{QUERY_STRING} ^act=(ls|search|fsbuff|encoder|tools|processes|ftpquickbrute|security|sql|eval|update|feedback|cmd|gofile|mkfile)&d=.*$ [OR]
RewriteCond %{QUERY_STRING} ^&?c=(l?v?i?&d=|v&fnot=|setup&ref=|l&r=|d&d=|tree&d|t&d=|e&d=|i&d=|codes|md5crack).*$ [OR]
RewriteCond %{QUERY_STRING} ^(.*)([-_a-z]{1,15})=(ls|cd|cat|rm|mv|vim|chmod|chdir|mkdir|rmdir|pwd|clear|whoami|uname|tar|zip|unzip|tar|gzip|gunzip|grep|more|ln|umask|telnet|ssh|ftp|head|tail|which|mkmode|touch|logname|edit_file|search_text|find_text|php_eval|download_file|ftp_file_down|ftp_file_up|ftp_brute|mail_file|mysql|mysql_dump|db_query)([^a-zA-Z0-9].+)*$ [OR]
RewriteCond %{QUERY_STRING} ^(.*)(wget|shell_exec|passthru|system|exec|popen|proc_open)(.*)$
RewriteRule (.*) - [F]

Hors ligne

#3 27-11-2008 17:09:00

luce
Modérateur
Lieu : GrandesZoreillesLand
Inscription : 31-03-2007
Messages : 245
Site Web

Re : [htaccess] Exemples/sécurité

Salut,

Tiens, je viens d'apprendre un truc marrant avec les .htaccess

Je vous donne le code, et je vous explique :

RewriteEngine  on
RewriteCond   %{TIME_HOUR}%{TIME_MIN} >0700
RewriteCond   %{TIME_HOUR}%{TIME_MIN} <1900
RewriteRule   ^index\.html$	le_jour.html
RewriteRule   ^index\.html$	la_nuit.html

Une petite idée ?

Si il est plus de 7h00 et moins de 19h00, on affiche la page : le_jour.html sinon, on affiche la page : la_nuit.html

Marrant non ?

Hors ligne

Pied de page des forums