Можно ли присваивать статус 404 неавторизованным пользователям?


В последние месяцы я наткнулся на несколько сайтов, которые выдают страницу статуса/ошибки 404, когда должно быть 403 или, может быть, 401.

Например, у меня есть частный репозиторий на github.com со ссылкой:

Https://github.com/BlueGhost-cz/BG3

Когда я случайно вышел из системы и попытался перейти по этой ссылке, я получил только сообщение "Это не та страница, которую вы ищете", что, очевидно, не соответствует действительности. Я ищу его и ресурс ДЕЙСТВИТЕЛЬНО существует, я просто не аутентифицирован. Я бы ожидал 403 или какой-либо другой страницы "отказано в разрешении". Это действительно напугало меня на несколько секунд, потому что подразумевало, что мой репозиторий был удален.

Вы тоже считаете это неправильным? Какова была бы "наилучшая практика" в этой области?

Author: Vojta Hejda, 2015-06-19

2 answers

Лично я считаю, что это оправдано. Возвращая вместо этого 403, Github подтвердил бы, что хранилище с таким именем существует, что само по себе может рассматриваться как дыра в безопасности (или, по крайней мере, нежелательно).

В качестве надуманного примера представьте, что эти хранилища существовали:

Если однажды http://github.com/valve/HalfLife3 начато возвращая 403, это в основном подтвердило бы, что над Half Life 3 велась работа.

Оборотной стороной этого является то, что веб-серверы нередко настраиваются на обслуживание 403-х для несуществующих URL-адресов по той же причине.

 1
Author: Tim Fountain, 2015-06-19 13:06:40

Ну, 404 следует использовать, когда ресурс не существует, это не значит, что вы не авторизованы, его вообще нет. 403 должно быть для запрещенных ресурсов, независимо от того, прошли ли вы проверку подлинности, у вас может не быть разрешения на данный ресурс. Я предпочитаю 401 для ресурсов, которые найдены, но для их получения требуется какая-то аутентификация. ИМО

 2
Author: Janx from Venezuela, 2015-06-20 01:03:09