HTTP 403 « Interdit » : causes, prévention et correction
Publié: 2023-09-01- Qu’est-ce que HTTP 403 ?
- Causes courantes
- Diagnostiquer
- Comment empêcher
- Comment le réparer
- Erreurs associées
HTTP 403 signifie « Interdit » et indique que la demande du client est comprise par le serveur, mais qu'il refuse d'y répondre.
Cet article vise à faire la lumière sur l'essence de HTTP 403, à analyser ses causes courantes, à guider son diagnostic et à proposer des techniques de prévention et de résolution.
Nous mettrons également en évidence les erreurs associées pour fournir une compréhension complète.
Qu’est-ce que HTTP 403 ?
HTTP 403 est un code d'état qui signifie « Interdit ». Lorsqu'il est rencontré, il indique au client que le serveur comprend la demande mais refuse de la terminer.
Contrairement au statut 401 « Non autorisé » , qui concerne des problèmes d'authentification de l'utilisateur, l'erreur 403 indique que l'authentification a peut-être réussi, mais que l'utilisateur authentifié ne dispose toujours pas des autorisations nécessaires pour accéder à la ressource demandée.
Causes courantes
Les erreurs HTTP 403 peuvent survenir dans diverses circonstances :
- Autorisations insuffisantes : l'utilisateur peut ne pas disposer des autorisations nécessaires pour accéder à une ressource particulière sur le serveur.
- Restrictions géographiques : certains contenus Web peuvent être limités aux utilisateurs de régions ou de pays spécifiques.
- Blocage IP : les serveurs peuvent bloquer certaines adresses IP en raison de problèmes de sécurité ou d'activités suspectes antérieures.
- Règles .htaccess strictes : Des règles incorrectes ou trop restrictives dans le fichier .htaccess sur les serveurs Apache peuvent entraîner des erreurs 403.
- Protocoles de sécurité du serveur : certains serveurs peuvent avoir des protocoles de sécurité qui bloquent les requêtes de certains agents utilisateurs ou navigateurs.
Diagnostiquer
Pour déterminer la cause première d'une erreur HTTP 403, suivez les étapes suivantes :
- URL de révision : assurez-vous que l'URL utilisée est correcte et qu'il n'y a pas de fautes de frappe.
- Inspecter les journaux du serveur : les journaux du serveur peuvent fournir des informations sur les raisons pour lesquelles une demande particulière a été refusée.
- Vérifiez le fichier .htaccess : pour les sites Web fonctionnant sur Apache, l'examen du fichier .htaccess peut identifier toute règle trop restrictive.
Comment empêcher
Éviter les erreurs HTTP 403 implique des étapes proactives pour garantir des interactions serveur-client fluides :
- Examinez régulièrement les autorisations : vérifiez et ajustez périodiquement les autorisations pour garantir que les utilisateurs peuvent accéder aux ressources nécessaires.
- Mettez à jour soigneusement .htaccess : Lorsque vous modifiez le fichier .htaccess, faites-le avec prudence et conservez toujours des sauvegardes.
- Surveiller la sécurité du serveur : restez à jour sur les protocoles de sécurité du serveur pour éviter les blocages involontaires.
Comment le réparer
La résolution d'une erreur 403 dépend de sa cause sous-jacente :
1. Ajuster les autorisations
Assurez-vous que les autorisations appropriées sont accordées aux utilisateurs ou aux répertoires qui nécessitent un accès. (En savoir plus)
2. Résoudre les problèmes .htaccess
- Sauvegardez votre fichier
.htaccess
: effectuez toujours une sauvegarde du fichier.htaccess
avant d’apporter des modifications. - Rechercher les directives de refus : recherchez les directives
Deny
dans votre fichier.htaccess
. S'ils sont présents, ils peuvent être à l'origine de l'erreur 403. Par exemple :Order allow,deny Deny from all
. Pour résoudre ce problème, supprimez la directive ou modifiez-la pour autoriser le trafic souhaité. - Protection par mot de passe : si certains répertoires sont protégés par mot de passe à l'aide de
AuthType
,AuthName
,AuthUserFile
etRequire
, assurez-vous que vous disposez des informations d'identification correctes pour y accéder. Si vous ne souhaitez pas de protection par mot de passe, vous pouvez commenter ou supprimer ces directives. - Autorisations de fichiers : bien qu'il ne s'agisse pas strictement d'une solution
.htaccess
, assurez-vous que vos fichiers et répertoires disposent des autorisations appropriées. Pour de nombreux serveurs, une configuration typique des autorisations est la suivante :- Dossiers : 755
- Fichiers : 644
- Listes de répertoires : si vous essayez d'accéder à un répertoire qui n'a pas de fichier d'index (comme
index.html
ouindex.php
) et que les listes de répertoires sont désactivées, vous pourriez obtenir une erreur 403. Tu peux soit:- Ajoutez un fichier d'index au répertoire.
- Activer les listes de répertoires avec :
Options +Indexes
- Règles Mod_Rewrite : Si vous utilisez des règles mod_rewrite, assurez-vous qu'elles sont correctement écrites. Des règles incorrectes peuvent parfois conduire à des erreurs 403. Commentez des règles spécifiques pour voir si elles en sont la cause.
- Vérifiez les restrictions de fichiers : recherchez les règles qui restreignent l'accès en fonction du nom de fichier, telles que :
<Files "secretfile.php"> Order allow,deny Deny from all </Files>
Ajustez ou supprimez ces règles si nécessaire. - Assurez-vous de la syntaxe .htaccess : un fichier
.htaccess
mal écrit ou contenant des directives non valides peut provoquer une erreur 403. Assurez-vous que toutes les directives et la syntaxe sont correctes.
Après avoir modifié le fichier .htaccess
, n'oubliez pas de vider le cache de votre navigateur ou de tester en utilisant un autre navigateur pour vous assurer que vous voyez le résultat mis à jour. Si aucune des solutions ci-dessus ne résout le problème, envisagez de restaurer une sauvegarde du fichier .htaccess
à partir d'un moment où vous ne rencontriez pas l'erreur 403.
3. Liste blanche des adresses IP
Si le blocage IP est en cause, envisagez de mettre sur liste blanche l’adresse IP concernée.
Liste blanche avec .htaccess :
- Localiser les règles de blocage IP existantes : recherchez les règles existantes dans votre fichier
.htaccess
qui pourraient bloquer les adresses IP. Ils pourraient ressembler à ceci :Order Deny,Allow Deny from all Allow from 123.123.123.123
Dans cet exemple, seule l'adresse IP123.123.123.123
est autorisée et toutes les autres adresses IP sont refusées. - Ajouter une adresse IP à la liste blanche : Si vous souhaitez ajouter une adresse IP spécifique à la liste blanche, vous pouvez l'ajouter à l'aide de la directive
Allow from
:Allow from YOUR.IP.ADDRESS.HERE
RemplacezYOUR.IP.ADDRESS.HERE
par l'adresse IP que vous souhaitez ajouter à la liste blanche. . - Liste blanche de plusieurs adresses IP : Si vous avez plusieurs adresses IP à mettre sur liste blanche, vous pouvez ajouter plusieurs directives
Allow from
:Allow from IP.ADDRESS.1 Allow from IP.ADDRESS.2
- Liste blanche d'une plage IP : Si vous disposez d'une plage d'adresses IP, vous pouvez utiliser la notation CIDR ou des caractères génériques :
#Using CIDR notation Allow from 123.123.123.0/24 # Using wildcards Allow from 123.123.123.*
Les deux exemples ci-dessus liste blanche de toutes les adresses IP de123.123.123.0
à123.123.123.255
. - Enregistrer et tester : après avoir ajouté les directives
Allow from
nécessaires, enregistrez le fichier.htaccess
, puis essayez d'accéder à votre site Web à partir de l'adresse IP précédemment bloquée. Il devrait maintenant être accessible. - Effacer le cache du navigateur : effacez toujours le cache de votre navigateur ou utilisez une fenêtre de navigation privée/privée lors des tests pour vous assurer que vous voyez les modifications les plus récentes.
Utiliser iptables
:
je. Sauvegarder les règles iptables actuelles : Avant d'apporter des modifications, c'est une bonne idée de sauvegarder vos règles iptables
actuelles.
sudo iptables-save > /path/to/backupfile.txt
ii. Mettre une adresse IP sur liste blanche : pour autoriser tout le trafic provenant d'une adresse IP spécifique :
sudo iptables -A INPUT -s YOUR.IP.ADDRESS.HERE -j ACCEPT
Remplacez YOUR.IP.ADDRESS.HERE
par l’adresse IP que vous souhaitez ajouter à la liste blanche.
iii. Enregistrez les modifications : En fonction de votre distribution, vous pouvez utiliser :
sudo service iptables save
Ou:
sudo iptables-save > /etc/sysconfig/iptables
En utilisant ufw
:
je. Vérifiez si UFW est installé : Sinon, vous pouvez l'installer à l'aide du gestionnaire de packages de votre distribution, par exemple :
sudo apt install ufw # For Ubuntu/Debian sudo yum install ufw # For CentOS (might not be in the default repositories)
ii. Activer UFW : Si ce n'est pas déjà activé, vous pouvez activer UFW avec :
sudo ufw enable
iii. Mettre une adresse IP sur liste blanche : pour autoriser tout le trafic provenant d'une adresse IP spécifique :
sudo ufw allow from YOUR.IP.ADDRESS.HERE
Remplacez YOUR.IP.ADDRESS.HERE
par l’adresse IP que vous souhaitez ajouter à la liste blanche.
iv. Vérifier les règles : Vous pouvez vérifier les règles UFW avec :
sudo ufw status
4. Recherchez l'assistance d'un fournisseur d'hébergement : Parfois, contacter votre fournisseur d'hébergement peut aider à identifier et à corriger les problèmes spécifiques au serveur.
Erreurs associées
Pour contextualiser davantage HTTP 403, considérez ces codes d'état HTTP associés :
- HTTP 401 (Non autorisé) : La requête nécessite une authentification de l'utilisateur.
- HTTP 402 (Paiement requis) : Réservé pour une utilisation future, il suggère qu'un paiement est requis.
- HTTP 404 (Not Found) : La ressource demandée n'est pas disponible sur le serveur.
En conclusion, comprendre les subtilités du code d’état HTTP 403 « Interdit » est essentiel pour garantir des interactions Web optimales. En restant informés et proactifs, les développeurs et les utilisateurs peuvent éviter les pièges potentiels et maintenir des expériences Web fluides.
En tant que l'un des co-fondateurs de Codeless, j'apporte mon expertise dans le développement d'applications WordPress et Web, ainsi qu'une expérience dans la gestion efficace de l'hébergement et des serveurs. Ma passion pour l'acquisition de connaissances et mon enthousiasme pour la construction et le test de nouvelles technologies me poussent à innover et à m'améliorer constamment.
Compétence:
Développement web,
Création de sites web,
Administration système Linux,
Référencement
Expérience:
15 ans d'expérience dans le développement Web en développant et en concevant certains des thèmes WordPress les plus populaires comme Specular, Tower et Folie.
Éducation:
J'ai un diplôme en ingénierie physique et un MSC en science des matériaux et optoélectronique.
Twitter, Linkedin