2 votes

Limiter les en-têtes de requête d'Apache2.4

J'essaie de limiter les en-têtes de requête d'un hôte virtuel à seulement POST , HEAD y GET . Ce que j'ai fait jusqu'ici, c'est que j'ai créé une .htaccess pour mon hôte virtuel et j'ai tapé ce qui suit :

<LimitExcept GET HEAD POST>
    Require valid-user
</LimitExcept>

Le problème est que <LimitExcept> montre une erreur qui dit not allowed here J'ai donc essayé d'utiliser <Limit> mais il en résulte la même erreur. J'ai également essayé de les déplacer dans mon hôte virtuel. .conf et il y a toujours une erreur. Ce que je ne comprends pas, c'est que dans la documentation officielle, il est dit que c'est autorisé à cet endroit et pourtant, dans mon serveur, ça ne l'est pas.

2voto

user98677 Points 151

Si vous essayez d'autoriser uniquement les méthodes GET, POST et HEAD, cela devrait fonctionner parfaitement :

<Directory "/path/to/documentroot">
    Require method GET POST HEAD
</Directory>

Vous devrez placer cette configuration dans votre VirtualHost.

EDIT: Et pour répondre à votre autre question dans le commentaire (comment activer l'authentification par mot de passe pour les requêtes POST uniquement), cela peut être réalisé avec les directives suivantes (que vous pouvez mettre dans /path/to/your/directory/.htaccess) :

<RequireAny>
     AuthUserFile /path/to/your/.htpasswd
     AuthName "Login"
     AuthType Basic
     Require method GET HEAD
     Require valid-user
</RequireAny>

Cela autorisera les méthodes GET et HEAD, mais les demandes POST déclencheront une authentification.

2voto

ezra-s Points 2122

La version 2.4 possède un module spécifique pour cela, appelé mod_allowmethods, et l'utilisation de Limit/LimitExcept est déconseillée en 2.4. Assurez-vous de charger le module et d'ajouter ceci dans le virtualhost approprié :

# documentroot dir in virtualhost
<Directory /path/to/dir>
     AllowMethods GET HEAD POST
     Require valid-user
</Directory>

Vous pouvez aussi le rendre global en le définissant plus tôt dans la configuration du serveur pour tout comme je le décris ci-dessous.

***Notez qu'il s'agit de / dans votre système de fichiers, vous devez donc refuser l'accès ici et l'autoriser dans des répertoires spécifiques comme documentroot ou des répertoires aliasés par la suite, mais les méthodes d'autorisation se propagent plus bas, à moins que vous ne les remplaciez plus tard.

<Directory />
    Require all denied
    AllowMethods GET HEAD POST
</Directory>

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X