web-dev-qa-db-fra.com

Mon serveur renvoie un 404 au lieu de 403 lorsque l'accès est interdit - est-ce bon ou mauvais?

via .htaccess, j'interdit l'accès aux dossiers ne comportant pas de page d'index (domain.com/images par exemple) et bloque complètement mon site pour plusieurs agents utilisateurs (tels que wget).

Lorsque je teste pour voir ce que ces types d'utilisateurs voient lors de l'accès à mon site Web à chacune de ces occasions, le message d'erreur affiché est quelque chose comme:

"Interdit

Vous n'êtes pas autorisé à accéder à/images/sur ce serveur.

En outre, une erreur 404 Not Found a été rencontrée lors de la tentative d'utilisation d'un ErrorDocument pour gérer la demande. "

Le titre est une erreur 403, mais dans les journaux de mon serveur, je vois que le serveur renvoie une erreur 404.

So - Est-ce "bon" ou "mauvais"? Que signifie le message ci-dessus?

1
getbuck

Il semble que vous ayez probablement configuré le document d'erreur interdit avec 404 au lieu de 403. Mais à moins que vous ne nous montriez votre configuration .htaccess, il nous sera difficile de vous aider.

Pour ce qui est de retourner 404 au lieu de 403, je le fais souvent. C'est une façon de ne pas révéler le fait que certaines pages ou certains répertoires existent. Supposons que j'ai un chemin "secret" auquel seuls les administrateurs peuvent accéder; personne n'a besoin d'un 403 car personne, à l'exception de très peu de personnes pouvant administrer le site et qui doivent probablement se connecter avant de pouvoir accéder à cette zone du site.

Dans votre cas, cependant, cela peut être moins une bonne idée. Mais la vérité est que /images s'il n'est pas interdit. Il est juste que vous n'avez pas de index.html par défaut. Il est donc probablement préférable de renvoyer 404, car un chemin tel que /images/eiffel-tower.jpg serait également interdit si le répertoire racine était interdit (du moins avec ma logique).

1
Alexis Wilke

L'erreur 403 Forbidden est due au problème d'accès refusé tel que prévu, il n'y a pas de problème ici - cela semble aller.

L'erreur 404 Page Not Found est due à votre fichier . Htaccess qui recherche et ne trouve pas où il s'attend, une sorte de page d'erreur personnalisée à afficher dans ce cas. Il est possible que votre fournisseur d’hébergement l’ait configuré au niveau du serveur plutôt que sous votre contrôle. Votre fichier journal devrait en fait indiquer le fichier qu’il essaie de trouver à côté de l’erreur.

Si la ErrorDocument n'avait pas été spécifiée dans le fichier . Htaccess, Apache aurait simplement utilisé une page d'erreur de base par défaut. Toutefois, comme elle a été spécifiée, vous devez vous assurer qu'un fichier est en place. Cela garantira:

  • (a) les utilisateurs ne sont pas amenés à croire que votre serveur Web/site Web pourrait avoir d’autres problèmes de configuration qui pourraient être exploités; et

  • (b) vos fichiers journaux ne seront pas surchargés d’erreur 404 pour chaque erreur 403 (cela peut être particulièrement apprécié si vous payez par mégaoctet d’espace disque hébergé, si vous avez une limite de quota limitant votre espace disque disponible, ou si vos journaux fonctionnent sur un cycle de temps limite, par exemple, en ne stockant que les entrées de journal des 72 dernières heures et en supprimant les plus anciennes au fur et à mesure de l'ajout d'entrées plus récentes).

Si la configuration ErrorDocument nécessite que vous ayez /403.html comme fichier d'erreur mais que vous souhaitez utiliser /errors/access-denied.php, vous pouvez créer une règle de redirection ou de réécriture HTTP 301 dans votre .htaccess fichier pour gérer cela.

1
richhallstoke

Je pense que votre serveur ne peut pas trouver le document d'erreur que vous avez spécifié.

Utilisez ensuite un vérificateur d’en-tête pour vérifier l’en-tête, s’il ne pose aucun problème.

0
Mazharul Haq SEO