2 votes

Comment peut-on renvoyer un HTTP 403 à partir d'un filtre d'entrée du serveur web Apache ?

J'ai écrit un module apache 2.x qui tente d'analyser les corps des requêtes et de renvoyer de manière conditionnelle 403 Forbidden si certains modèles correspondent.

Ma première tentative a utilisé ap_hook_handler pour intercepter la demande, la scanner et ensuite renvoyer DECLINED au véritable gestionnaire pourrait prendre le relais (ou 403 si les conditions sont réunies).

Le problème avec cette approche est que lorsque je lis le corps du POST de la requête (en utilisant ap_get_client_block et amis), il consommait apparemment le corps de sorte que si la requête était ensuite traitée par mod_proxy, le corps disparaissait.

Je pense que la bonne façon de scanner le corps serait d'utiliser un filtre d'entrée, sauf qu'un filtre d'entrée ne peut que retourner APR_SUCCESS ou échouer. Tout code de retour autre que APR_SUCCESS est traduit en HTTP 400 Bad Request .

Je pense que je peux peut-être stocker un drapeau dans les notes de la demande si le filtre d'entrée veut faire échouer la demande, mais je ne suis pas sûr de quel hook ultérieur obtenir cela.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X