web-dev-qa-db-fra.com

Transformer les 403 en 404?

Je travaille actuellement sur une application web où il existe différents niveaux d'accès. Les utilisateurs peuvent accéder à certaines zones de l'application, mais peuvent ne pas être autorisés à accéder à une autre zone.

L'application est construite avec des URL propres, telles que: http://mysite.com/projects/newproject1

Le système détermine ce à quoi l'utilisateur peut accéder et crée des boutons/menus/liens pour ces éléments. L'utilisateur ne verra jamais un lien/bouton ou menu vers quelque chose auquel il n'a pas accès.

Cependant, puisque l'application est construite avec des URL propres, quelqu'un qui ne devrait pas avoir accès au module de projet ou à "newproject1" dans le module de projet peut essayer d'accéder à cette zone directement via l'URL. L'URL peut leur être envoyée par un autre e-mail, ou ils peuvent simplement essayer d'être intelligents et voir s'ils peuvent accéder à cette zone de l'application.

J'envisage actuellement de traiter tous les cas de "demande interdite" comme une erreur "Page non trouvée":

  • Au lieu d'envoyer un 403 dans la réponse HTTP, un 404 sera envoyé.
  • Un message leur indique que la page est indisponible au lieu d'un disant qu'ils ne sont pas autorisés à y accéder et à contacter leur administrateur système pour toute question.
  • Il en sera de même pour les erreurs de page non trouvée. Un 404 sera envoyé et nous afficherons un message disant que la page n'est pas disponible.

Est-ce une bonne idée?

4
F21

Puisque votre question est essentiellement " Est-ce une bonne idée? ", je dirais non, ce n'est pas le cas.

Les utilisateurs peuvent "essayer d'être intelligents" ou en fait plus intelligents, comment le sauriez-vous? Que faire si l'utilisateur est un concepteur d'interface utilisateur/PHP développeur lui-même?

Si vous souhaitez usurper un 404, je vous suggère de le faire de telle manière que le message puisse être interprété dans les deux sens. Un utilisateur averti comprendra que cela signifie un signal "Keep Off", tandis qu'un visiteur naïf pourrait clairement voir un "désolé, non".

J'ai vraiment aimé quand ils ont proposé " c'est tout ce que nous savons ." compléter avec une période à la fin de celui-ci.

8
Kris

Eh bien, s'ils sont curieux ou essaient d'être intelligents, avec un robot Web ou un outil comme celui-ci, ou même des googlebots, ils verront beaucoup de 404, mais ils ne renonceront pas. La 403 est un "arrêt juste là", la 404 semble être une "malchance, essayez encore". De plus, il sera difficile pour les bons utilisateurs de vous dire s'ils ont des problèmes d'accès ou autre, car ils ne voient que des 404.

3
alfa64

Il s'agit plus d'une réponse principale. Non pas une bonne idée, si vous voulez changer le côté de l'interface utilisateur pour que les pages 403 et 404 se ressemblent.

Cependant, du côté de la réponse, il est toujours important pour certains de connaître la météo, la page existe ou la page est interdite

Je ne sais pas à quoi ressemble votre application ni quel est le but de votre projet, mais disons que vous me demandez de faire de l'exploration back-end vers votre site Web, et lors du débogage, je reçois toujours une réponse 404, c'est très déroutant comme je vais supposer que la page existe, et passer à autre chose. Cependant, si vous lancez un 403, je sais exactement à ce moment-là, Ahhh. Le serveur ne me permet pas d'entrer, je dois faire quelque chose de mal.

Mais si vous vous inquiétez pour les utilisateurs, confondez-vous avec 403 faire ressembler l'extrémité avant à un 404 page!

Si vous êtes inquiet pour la sécurité, assurez-vous que votre 403 a toujours raison et que personne ne peut les contourner.

Le nombre de fois où j'ai vu une réponse 200 envoyé lorsque la page indique clairement 404 pas trouvé. C'est mauvais mauvais et très mauvais !

0
whoami