Содержание

403 Forbidden: Что означает код статуса http и как его исправить?

http ошибка 403 являетсясообщение об ошибкекоторый периодически отображается в веб-браузере пользователя.Ошибка 403 — это один из многих ответов протокола передачи гипертекста, который может появиться при попытке доступа к веб-странице.Если в вашем браузере вместо запрошенного вами сайта появляется сообщение ‘403 Forbidden’, это означает, что вы не авторизованы для доступа к указанному URL.

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

Как возникает ошибка http 403?

Сообщение об ошибке http 403 может возникнуть при работе в Интернете, а именново время коммуникации между http-клиентом иhttp-сервер (веб-сервер). Для того чтобы понять 403 ошибку, необходимо представить себе процесс доступа к веб-странице.

Когда вы пытаетесь открыть веб-страницу, браузер посылает запрос на соответствующий веб-сервер по протоколу передачи гипертекста (http). На сайтесервер затем проверяет этот запрос. Если все было введено правильно, браузер отправляет код состояния http категории ‘2xx success’ (например, ‘200 OK’ или ‘201 created’) перед загрузкой веб-страницы.Это происходит в течение доли секунды, и пользователи обычно не видят код.

Однако если процедура завершится неудачно, будет выведено сообщение об ошибке другого класса.Эти ‘Ошибка клиента 4xx‘ коды, которые включают сообщение ‘403 forbidden’, отличаются от сообщений ‘2xx success’.Каждый код ошибки отличается автоматически генерируемой HTML-страницей ошибки.Из этого класса наиболее известным является сообщение об ошибке 404.Все коды статуса http 4xx — это ответы сервера, которые указывают на то, что запрос не был успешно обработан. Как следует из названия кода состояния, клиент обычно является — но не обязательно — источником проблемы.

Сам код статуса http 403 выражает, что запрашиваемый URL действительно существует, но запрос клиента не может быть выполнен.Клиент не был авторизован для доступа к webp»>возрасту. Однако истинная причина ошибки http 403 варьируется от случая к случаю; существует множество различных причин, по которым может появиться сообщение об ошибке 403.

На некоторых сайтах поиск по определенным каталогам активно предотвращается статусом 403.Примером может служить ситуация, когда веб-страницы содержат изображения, к которым невозможно получить доступ или легко скопировать.В этом случае пользователь мало что может сделать, чтобы получить доступ к странице.Однако в большинстве других случаев пользователи могут исправить сообщение об ошибке 403 forbidden.Читайте дальше, чтобы узнать, как это сделать.

Возможные источники ошибки 403 и способы их устранения

Сообщения ‘403 forbidden’ также отображаются как ‘Error 403 access denied’, ‘http 403’ или просто ‘Forbidden’. Это сообщение об ошибке часто заставляет пользователей думать, что такие сообщения появляются, когда для доступа к веб-странице требуется пароль.В общем случае, подобная ситуация не вызовет сообщение об ошибке http 403 — вместо него будет код ошибки 401.Сообщения обычно появляются из-за ошибки внастройки клиента. Наиболее распространенными ошибками являются следующие:

Решение 1: деактивируйте расширения браузера

Возможно, ваш браузер был отклонен из-за активных плагинов и/или дополнений, таких как блокировщики рекламы или прокси-плагины.Если вы столкнулись с ошибкой 403, попробуйте деактивировать свои расширения, а затем повторите попытку доступа к URL-адресу.

Решение 2: очистите кэш браузера

Если после деактивации плагинов ваш браузер все еще отображает код статуса http 403, попробуйте очистить кэш и посмотреть, решит ли это проблему.

Решение 3: настройки брандмауэра

Если очистка кэша все еще не привела к появлению нужной веб-страницы, также возможно, что существует проблема между веб-сервером и вашим брандмауэром, из-за которой в браузере отображается HTTP-ошибка 403. Если вы доверяете оператору веб-страницы, вы можете отключить брандмауэр и попробовать открыть веб-страницу снова.Если это окончательно решит проблему, вам следует изменить настройки брандмауэра так, чтобы эта страница была разрешена.

Код состояния http 403 обычно легко обойти

Ошибка 403 обычно говорит о том, что браузер неуполномочен просматривать запрашиваемую страницу. Однако, если вам повезет, вы сможете исправить ошибку http 403 с помощью одного из ранее упомянутых приемов.Если вы испробовали все эти методы, но все еще видите сообщение об ошибке, вам следует проверить вашнастройки браузера и/или брандмауэра.

Некоторые операторы веб-сайтов защищают определенные каталоги от «просмотра каталогов», и администратор мог неправильно настроить параметры авторизации.Если вы подозреваете, что дело обстоит именно так, ваш единственный выход — этосвязаться с оператором сайтаи предупредить их об ошибке 403.Если все эти варианты не помогли, вам остается только смириться с тем, что вы не можете получить доступ к нужному URL.

Ошибка 403 | это… Что такое Ошибка 403?

301

Moved Permanently (русск. Перемещёно окончательно)
Появился в HTTP/1.0.

Запрошенный документ был окончательно перенесен на новый URI, указанный в поле Location заголовка. При запросах не методом HEAD сервер должен передать в теле сообщения гипертекстовое пояснение. При использовании всех методов, кроме GET и POST, предварительно следует уведомить пользователя об изменении ссылки. Не стоит забывать, что некоторые клиенты ошибочно меняют метод POST на GET после перехода на другой адрес.

Ответ может кэшироваться.

Если код состояния 301 получен после запроса GET или HEAD, то клиент должен запросить пользователя перед адресацией.

302

Found (русск. Найдено)
Введено в HTTP/1.0.

Запрошенный документ временно доступен по другому URI, указанному в заголовке в поле Location. При всех методах кроме HEAD сервер должен передать в теле гипертекстовое пояснение.

При использовании всех отличных от GET и POST методов предварительно следует уведомить пользователя об изменении URI. При обращении к следующему ресурсу метод POST на GET менять следует как это делают некоторые клиенты.

Код является примером того, как практика не соответствует стандартам. Спецификация HTTP/1.0 требовала от клиента осуществления временной переадресации («Moved temporarly» в оригинале), но популярные браузеры использовали 303 See other. Поэтому спецификация HTTP/1.1 (RFC 2068) добавила коды состояний 303 и 307, пытаясь избавиться от неоднозначности. Тем не менее, большинство веб-приложений по прежнему используют код 302, как если бы он был кодом 303.

303

See Other (русск. Смотреть другое)
Введено в HTTP/1.1.

Документ по запрошенному URI нужно запросить по адресу в поле Location заголовка с использованием метода GET несмотря даже на то, что первый запрашивался методом POST. Если используется не метод HEAD, то серверу следует включить в тело сообщения короткое гипертекстовое описание.

304

Not Modified (русск. Не изменено)
Появился в HTTP/1.0.

Сервер возвращает такой код, если клиент запросил документ методом GET, использовал заголовок If-Modified-Since или If-None-Match и документ не изменился с указанного момента. При этом сообщение сервера не должно содержать тела.

305

Use Proxy (русск. Использовать прокси)
Введено в HTTP/1.1.

Запрос к запрашиваемому ресурсу должен осуществляться через прокси-сервер, URI которого указан в поле Location заголовка. Данный код ответа могут использовать только родные HTTP-сервера (не прокси).

306

Упомянуто в RFC 2616 (обновление HTTP/1.1).

Использовалось раньше. В настоящий момент зарезервировано.

307

Temporary Redirect (русск. Временное перенаправление) Введено в RFC 2616 (обновление HTTP/1.1).

Запрашиваемый ресурс короткое время доступен только по другому URI (указывается в поле Location заголовка).

Если был послан не метод HEAD, то серверу следует включить в тело сообщения короткое гипертекстовое описание. При использовании всех методов кроме GET и POST предварительно следует уведомить пользователя о временном изменении ссылки.

4xx: Client Error

Класс кодов 4xx предназначен для указания ошибок со стороны клиента. При использовании всех методов, кроме HEAD, сервер должен вернуть в теле сообщения гипертекстовое пояснение для пользователя.

Для облегчения запоминания значений кодов существуют приёмы иллюстративной мнемотехники (например, для диапазона 400 по 417

[1])

400

Bad Request (русск. Плохой запрос)
Появился в HTTP/1.0.

Запрос не понят сервером из-за наличия синтаксической ошибки. Клиенту следует повторно обратиться к ресурсу с изменённым запросом.

401

Unauthorized (русск. Неавторизован)
Появился в HTTP/1.0.

Запрос требует идентификации пользователя. Клиент должен запросить имя и пароль у пользователя и передать их в записи WWW-Authenticate заголовка в следующем запросе. В случае ввода ошибочных данных сервер снова вернёт этот же статус.

402

Payment Required (русск.

Необходима оплата )
Зарезервирован начиная с HTTP/1.1.

Предполагается использовать в будущем. В настоящий момент не используется.

403

Сервер вернул ошибку 403 при попытке просмотра директории cgi-bin, доступ к которой был запрещён

Forbidden (русск. Запрещено)
Появился в HTTP/1.0.

Сервер понял запрос, но он отказывается его выполнять из-за каких-то ограничений в доступе. Идентификация через протокол HTTP здесь не поможет. Скорее всего, на сервере нужно провести аутентификацию другим способом, сделать запрос с определёнными параметрами или удовлетворить каким-либо условиям.

Сообщение 403 может возвращаться, если хозяин сайта по каким-то соображениям решил закрыть от пользователей часть информации. Кроме того, если веб-сервер не имеет прав доступа к запрошенному документу, он также вернёт код 403.

Простая ситуация, когда страница может на самом деле не существовать, но сервер выдаст ошибку 403 (запрещено), а не 404 (не найдено): страница находится в директории foo, доступ к которой был запрещён веб-серверу — таким образом веб-сервер не может «знать», есть в этой директории такая страница, или нет.

Очень часто запрещается просмотр всех или некоторых директорий без главной страницы — в этом случае пользователю вывелся бы список файлов и каталогов в этой директории, а так ему возвращается ошибка 403.

404

Попытка запросить документ /fgsfds в Википедии приводит к ошибке 404. Тем не менее, программное обеспечение Википедии перенаправляет нас на соответствующую статью, которая могла бы существовать.

Not Found (русск. Не найдено)
Появился в HTTP/1.0.

Сервер понял запрос, но не нашёл соответствующего ресурса по указанному 410 вместо этого. Этот код может использоваться вместо 403, если требуется тщательно скрыть от посторонних глаз определённые ресурсы.

Ссылки
  • Медиафайлы по теме http-ошибка 404 с Викисклада.
  • ErrorDocument Directive — инструкции по созданию пользовательских 404-х страниц для Apache 2.2 web server.
  • 404 Research Lab — Всё о 404-х страницах
  • Несколько 404-х страниц в одной — Несколько 404-х страниц в одной

405

Method Not Allowed (русск. Метод не поддерживается)
Появился в HTTP/1.1.

Указанный клиентом метод нельзя применить к ресурсу. Сервер также должен передать в заголовке ответа поле Allow со списком доступных методов.

406

Not Acceptable (русск. Не приемлемо)
Появился в HTTP/1.1.

Запрошенный URI не может удовлетворить переданным в заголовке характеристикам. Если метод был не HEAD, то сервер должен вернуть список допустимых характеристик для данного ресурса.

407

Proxy Authentication Required (русск. Необходима авторизация прокси)
Появился в HTTP/1. 1.

Ответ аналогичен коду 401 за исключением того, что аутентификация производится для прокси-сервера. Механизм аналогичен идентификации на обычном сервере.

408

Request Timeout (русск. Время ожидания истекло)
Появился в HTTP/1.1,

Время ожидания сервером передачи от клиента истекло. Клиент может повторить аналогичный предыдущему запрос в любое время.

409

Conflict (русск. Конфликт

)
Появился в HTTP/1.1.

Запрос не может выполнен из-за конфликтного обращения к ресурсу. Такое возможно, например, когда два клиента пытаются изменить ресурс с помощью метода PUT.

410

Gone (русск. Удалён)
Появился в HTTP/1.1.

Такой ответ сервер посылает, когда ресурс раньше был по указанному URI, но был удалён и теперь недоступен. Серверу в этом случае не известно и местоположение альтернативного документа (например, копии). Если у сервера есть подозрение, что документ в ближайшее время может быть восстановлен, то лучше клиенту передать код 404.

411

Length Required

(русск. Необходима длина)
Появился в HTTP/1.1.

Для указанного ресурса клиент должен указать Content-Length в заголовке запроса. Без указания этого поля не стоит делать повторную попытку запроса к серверу по данному URI.

412

Precondition Failed (русск. Условие «ложно»)
Появился в HTTP/1.1.

Возвращается, если ни одно из условных полей заголовка запроса не было выполнено.

413

Request Entity Too Large (русск. Запрашиваемые данные слишком большие)
Появился в HTTP/1.1.

Возвращается если сервер по каким-то причинам не может передать запрашиваемый объём информации. Если проблема временная, то сервер может в ответе указать в поле Retry-After время, по истечении которого можно повторить аналогичный запрос.

414

Request-URI Too Long (русск. Запрашиваемый URI слишком длинный)
Появился в HTTP/1.1.

Сервер не может обработать запрос из-за слишком длинного указанного URI. Такую ошибку можно спровоцировать, например, когда клиент пытается передать длинные параметры через метод GET, а не POST.

415

Unsupported Media Type (русск. Неподдерживаемый тип данных)
Появился в HTTP/1.1.

По каким-то причинам сервер отказывается работать с указанным типом данных при данном методе.

416

Requested Range Not Satisfiable (русск. Запрашиваемый диапазон не достижим)
Введено в RFC 2616 (обновление HTTP/1.1).

В поле Range заголовка запроса был указан диапазон за пределами ресурса и отсутствует поле If-Range. Если клиент передал байтовый диапазон, то сервер может вернуть реальный размер в поле Content-Range заголовка. Данный ответ не следует использовать при передаче типа multipart/byteranges.

417

Expectation Failed (русск. Ожидаемое ошибочно)
Введено в RFC 2616 (обновление HTTP/1.1).

По каким-то причинам сервер не может удовлетворить значению поля Expect заголовка запроса.

422

Unprocessable Entity (русск. Необрабатываемый экзмепляр)
Введено в XML-документ имеет верный синтаксис, но имеется какая-то логическая ошибка из-за которой невозможно произвести операцию над ресурсом.

423

Locked (русск. Заблокировано)
Введено в

424

Failed Dependency (русск. Невыполненная зависимость)
Введено в 424.

426

Upgrade Required (русск. Необходимо обновление)
Введено в RFC 2817 для возможности перехода к

Сервер указывает клиенту на необходимость обновить протокол. Заголовок ответа должен содержать правильно сформированные поля Upgrade и Connection.

5xx: Server Error

Коды 5xx выделены под случаи неудачного выполнения операции по вине сервера. Для всех ситуаций, кроме использования метода HEAD, сервер должен включать в тело сообщения объяснение, которое клиент отобразит пользователю.

500

Internal Server Error (русск. Внутренняя ошибка сервера)
Появился в HTTP/1.0.

Любая внутренняя ошибка сервера, которая не входит в рамки остальных ошибок класса 5xx.

501

Not Implemented (русск. Не реализовано)
Появился в HTTP/1.0.

Сервер не поддерживает возможностей, необходимых для обработки запроса. Типичный ответ для случаев, когда сервер не понимает указанный в запросе метод.

502

Bad Gateway (русск. Плохой шлюз)
Появился в HTTP/1.0.

Сервер в роли шлюза или прокси получил сообщение о неудачном выполнении промежуточной операции.

503

Service Unavailable (русск. Сервис недоступен)
Появился в HTTP/1.0.

Сервер временно не имеет возможности обрабатывать запросы по техническим причинам (обслуживание, перегрузка и прочее). В поле Retry-After заголовка сервер может указать время, через которое клиенту рекомендуется повторить запрос. Хотя во время перегрузки очевидным является сразу разрывать соединение, эффективней может оказаться установка большого значения поля Retry-After для уменьшения частоты избыточных запросов.

504

Gateway Timeout (русск. Шлюз не отвечает)
Появился в HTTP/1.1.

Сервер в роли шлюза или прокси не дождался ответа от вышестоящего сервера для завершения текущего запроса.

505

HTTP Version Not Supported (русск. Версия HTTP не поддерживается)
Появился в HTTP/1.1.

Сервер не поддерживает или отказывается поддерживать указанную в запросе версию протокола HTTP.

506

Variant Also Negotiates (русск. Вариант тоже согласован)
Экспериментальное. Введено в RFC 2295 для дополнения протокола HTTP технологией Transparent Content Negotiation.

В результате ошибочной конфигурации выбранный вариант указывает сам на себя из-за чего процесс связывания прерывается.

507

Insufficient Storage (русск. Закончилось место)
Введено в

510

Not Extended (русск. Не расширено)
Введено в RFC 2774 для дополнения протокола HTTP поддержкой расширений.

На сервере отсутствует расширение, которое планирует использовать клиент. Сервер может дополнительно передать информацию о доступных ему расширениях.

Примечания

  1. HTTP errors

См. также

  • Список кодов ответов FTP
  • Протокол WebDAV
  • Дельта-кодирование

Ссылки

  • Реестр кодов состояния IANA.
  • RFC 1945 — «Hypertext Transfer Protocol — HTTP/1.0» (также описывает HTTP/0.9).
  • RFC 2068 — «Hypertext Transfer Protocol — HTTP/1.1» (перевод на русском).
  • RFC 2518 — «HTTP Extensions for Distributed Authoring — WEBDAV».
  • RFC 2616 — «Hypertext Transfer Protocol — HTTP/1.1» (обновленние протокола HTTP/1.1).
  • RFC 2774 — «An HTTP Extension Framework» (введение в HTTP поддержки расширений).
  • RFC 3229 — «Delta encoding in HTTP».
  • RFC 4918 — «HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV)».
  • Коды состояния служб IIS в «Базе знаний» Microsoft.

Справочник по кодам статуса HTTP

400Неверный запрос/Bad Request

Запрос не может быть понят сервером из-за некорректного синтаксиса.

401Неавторизованный запрос/Unauthorized

Для доступа к документу необходимо вводить пароль или быть зарегистрированным пользователем.

402Необходима оплата за запрос/Payment Required

Внутренняя ошибка или ошибка конфигурации сервера.

403Доступ к ресурсу запрещен/Forbidden

Доступ к документу запрещен. Если вы хотите, чтобы страница индексировалась, необходимо разрешить доступ к ней.

404Ресурс не найден/Not Found

Документ не существует. Если вы удалили какой-то раздел сайта, можно с помощью robots.txt запретить роботу обращаться к нему. Если такой страницы на сайте никогда не существовало, игнорируйте эту ошибку, возможно, кто-то поставил некорректную ссылку на ваш сайт.

405Недопустимый метод/Method Not Allowed

Метод, определенный в строке запроса (Request-Line), не дозволено применять для указанного ресурса, поэтому робот не смог его проиндексировать.

406Неприемлемый запрос/Not Acceptable

Нужный документ существует, но не в том формате (язык или кодировка не поддерживаются роботом).

407Требуется идентификация прокси, файервола/Proxy Authentication Required

Необходима регистрация на прокси-сервере.

408Время запроса истекло/Request Timeout

Сайт не передал полный запрос в течение установленного времени и робот разорвал соединение.

409Конфликт/Conflict

Запрос конфликтует с другим запросом или с конфигурацией сервера.

410Ресурс недоступен/Gone

Затребованный ресурс был окончательно удален с сайта.

411Необходимо указать длину/Length Required

Сервер отказывается принимать запрос без определенного заголовка Content-Length. Поправьте заголовки на своем сервере;— тогда в следующий раз робот сможет проиндексировать страницу.

412Сбой при обработке предварительного условия/Precondition Failed

При проверке на сервере одного или более полей заголовка запроса обнаружено несоответствие (сбой или ошибка при обработке предварительного условия).

413Тело запроса превышает допустимый размер/Request Entity Too Large

Сервер отказывается обрабатывать запрос потому, что размер запроса больше того, что может обработать сервер.

414Недопустимая длина URI запроса/Request-URI Too Long

Сервер отказывается обслуживать запрос, потому что запрашиваемый роботом URI (Request-URI) длиннее, чем сервер может интерпретировать.

415Неподдерживаемый MIME тип/Unsupported Media Type

Сервер отказывается обрабатывать запрос, потому что тело запроса имеет неподдерживаемый формат.

416Диапазон не может быть обработан/Requested Range Not Satisfiable

Сервер отказывается обрабатывать запрос, потому что значение поля Range в заголовке запроса указывает на недопустимый диапазон байтов.

417Сбой при ожидании/Expectation Failed

Сервер отказывается обрабатывать запрос, потому что значение поля Expect в заголовке запроса не соответствует ожиданиям.

422Необрабатываемый элемент/Unprocessable Entity

Сервер не в состоянии обработать один (или более) элемент запроса.

423Заблокировано/Locked

Сервер отказывается обработать запрос, так как один из требуемых ресурсов заблокирован.

424Неверная зависимость/Failed Dependency

Сервер отказывается обработать запрос, так как один из зависимых ресурсов заблокирован.

426Требуется обновление/Upgrade Required

Сервер запросил апгрейд соединения до SSL, но SSL не поддерживается клиентом.

429Слишком много запросов/Too Many Requests

Отправлено слишком много запросов за короткое время. Это может указывать, например, на попытку DDoS-атаки. Ответ может сопровождаться заголовком Retry-After, который указывает, через какое время можно повторить запрос. Яндекс не учитывает этот заголовок.

Запрещено (403), Несанкционировано (401) или что еще?

Предположим, ваш веб-API защищен, и клиент пытается получить к нему доступ без соответствующих учетных данных. Как вы справляетесь с этим сценарием? Скорее всего, вы знаете, что должны вернуть код состояния HTTP. Но какой из них более подходящий? Должен ли это быть 401 Неавторизованный или 403 Запрещенный ? Или, может быть, что-то еще?

Как обычно, зависит 🙂. Это зависит от конкретного сценария, а также от уровня безопасности, который вы хотите обеспечить. Давайте немного углубимся.

Если хотите, можете посмотреть видео на ту же тему:

Прежде чем углубляться в конкретную тему, давайте кратко рассмотрим смысл кодов состояния HTTP в целом. Большинство веб-API вдохновлены парадигмой REST. Хотя подавляющее большинство из них на самом деле не реализуют REST, они обычно следуют нескольким соглашениям RESTful, когда речь идет о кодах состояния HTTP.

Основной принцип, лежащий в основе этих соглашений, заключается в том, что код состояния, возвращаемый в ответе, должен информировать клиента о том, что происходит и что сервер ожидает от клиента в следующий раз . Вы можете выполнить этот принцип, ответив на следующие вопросы:

  • Есть проблема или нет?
  • Если есть проблема, на какой стороне она? На стороне клиента или на стороне сервера?
  • Что делать клиенту в случае возникновения проблемы?

Это общий принцип, применимый ко всем кодам состояния HTTP. Например, если клиент получает код состояния 200 OK , он знает, что с его запросом не было проблем, и ожидает представления запрошенного ресурса в теле ответа. Если клиент получает 201 Создан код состояния , он знает, что с его запросом не было проблем, но представление ресурса отсутствует в теле ответа. Точно так же, когда клиент получает код состояния 500 Internal Server Error , он знает, что это проблема на стороне сервера, и клиент не может ничего сделать, чтобы смягчить ее.

Таким образом, ответ вашего веб-API должен предоставить клиенту достаточно информации, чтобы понять, как он может двигаться вперед в нужное время.

Рассмотрим случай, когда клиент пытается вызвать защищенный API. Если клиент предоставляет соответствующие учетные данные (например, действительный токен доступа), его запрос принимается и обрабатывается. Что происходит, когда у клиента нет соответствующих учетных данных? Какой код состояния должен возвращать ваш API, если запрос является незаконным? Какую информацию он должен возвращать и как гарантировать наилучшую безопасность?

К счастью, в контексте безопасности OAuth у вас есть некоторые рекомендации. Конечно, вы можете использовать их, даже если вы не используете OAuth для защиты своего API.

«Основной принцип кодов состояния REST заключается в том, что код состояния должен информировать клиента о том, что происходит и что сервер ожидает от клиента в следующий раз»

Твитнуть это

Когда использовать Запрос?

Начнем с простого случая: клиент вызывает ваш защищенный API, опуская обязательный параметр. В этом случае ваш API должен ответить 400 Код состояния Bad Request . На самом деле, если этот параметр требуется, ваш API не может даже обработать запрос клиента. Запрос клиента имеет неверный формат.

Ваш API должен возвращать один и тот же код состояния, даже если клиент предоставляет неподдерживаемый параметр или повторяет один и тот же параметр несколько раз в своем запросе. В обоих случаях запрос клиента не соответствует ожиданиям и должен быть отклонен .

Следуя общему принципу, описанному выше, клиент должен иметь возможность понять, что делать, чтобы решить проблему. Итак, вы должны добавить в тело своего ответа, что не так с запросом клиента. Вы можете предоставить эти сведения в предпочитаемом вами формате, таком как простой текст, XML, JSON и т. д. Однако использование стандартного формата, подобного тому, который предлагается в спецификациях API-интерфейсов HTTP «Сведения о проблеме», будет более подходящим для обеспечения единообразного управления проблемами во всех клиенты.

Например, если ваш клиент вызывает ваш API с пустым значением для обязательного параметра data , API может ответить следующим ответом:

 HTTP/1.1 400 Bad Request
Content-Type: приложение/проблема+json
Язык содержания: en
{
  "тип": "https://myapi.com/validation-error",
  "title": "Ошибка проверки",
  "detail": "Параметры вашего запроса недействительны.",
  "неверные параметры": [
    {
      "имя": "данные",
      "причина": "не может быть пустым."
    }
  ]
} 

Когда использовать 401 Неавторизованный?

Теперь предположим, что клиент вызывает ваш защищенный API с правильно сформированным запросом, но без действительных учетных данных. Например, в контексте OAuth это может произойти в одном из следующих случаев:

  • Отсутствует токен доступа.
  • Токен доступа просрочен, отозван, имеет неправильный формат или недействителен по другим причинам.

В обоих случаях соответствующий код состояния для ответа — 401 Неавторизованный . В духе взаимного сотрудничества между клиентом и API ответ должен содержать подсказку о том, как получить такую ​​авторизацию. Это приходит в форме Заголовок WWW-Authenticate с конкретной используемой схемой аутентификации. Например, в случае OAuth3 ответ должен выглядеть следующим образом:

 HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer realm="example" 

Вы должны использовать схему Bearer и предоставить параметр realm , чтобы указать набор ресурсов, которые защищает API.

Если запрос клиента не содержит токена доступа, демонстрирующего, что он не знал о защите API, ответ API не должен содержать никакой другой информации.

С другой стороны, если запрос клиента включает токен доступа с истекшим сроком действия, ответ API может включать причину отказа в доступе, как показано в следующем примере:

 HTTP/1.1 401 Несанкционировано
WWW-аутентификация: Bearer realm="example",
                  ошибка = "недействительный_токен",
                  error_description="Срок действия маркера доступа истек" 

Когда использовать 403 Запрещено?

Теперь давайте рассмотрим другой случай. Предположим, например, что ваш клиент отправляет запрос на изменение документа и предоставляет действительный токен доступа к API. Однако этот токен не включает и не подразумевает каких-либо разрешений или областей действия, которые позволяют клиенту выполнять желаемое действие.

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

Чтобы помочь клиенту понять, что делать дальше, ваш API может указать в своем ответе, какие привилегии необходимы. Например, согласно рекомендациям OAuth3, ваш API может включать информацию об отсутствующей области для доступа к защищенному ресурсу.

Попробуйте самую мощную платформу аутентификации бесплатно. Начало работы →

Вопросы безопасности

Когда вы планируете отвечать на запросы ваших клиентов, всегда помните о безопасности.

Что делать с деталями ответа

Основной задачей безопасности является недопущение предоставления полезной информации потенциальным злоумышленникам . Другими словами, возврат подробной информации в ответах API на попытки доступа к защищенным ресурсам может представлять угрозу безопасности.

Например, предположим, что ваш API возвращает код состояния 401 Unauthorized с описанием ошибки, например Срок действия токена доступа истек . В этом случае он дает информацию о самом токене потенциальному злоумышленнику. То же самое происходит, когда ваш API отвечает кодом состояния 403 Forbidden и сообщает об отсутствующей области или привилегии.

Другими словами, обмен этой информацией может улучшить взаимодействие между клиентом и сервером в соответствии с основным принципом парадигмы REST. Однако та же информация может быть использована злоумышленниками для разработки своей стратегии атаки .

Поскольку эта дополнительная информация является необязательной как для спецификаций HTTP, так и для рекомендаций по токену-носителю OAuth3, возможно, вам следует тщательно подумать о ее совместном использовании. Основной принцип предоставления дополнительной информации должен основываться на ответе на этот вопрос: как клиент будет вести себя иначе, если ему будет предоставлена ​​дополнительная информация?

Например, в случае ответа с 401 Неавторизованный код состояния . Изменяется ли поведение клиента, когда он узнает, что его токен просрочен или отозван? В любом случае он должен запросить новый токен. Таким образом, добавление этой информации не меняет поведение клиента.

Иначе обстоит дело с 403 Запрещено . Сообщая вашему клиенту, что ему требуется определенное разрешение, ваш API заставляет его узнать, что делать дальше, то есть запрашивать это дополнительное разрешение. Если ваш API не предоставляет эту дополнительную информацию, он будет ведет себя иначе, чем , потому что не знает, что делать, чтобы получить доступ к этому ресурсу.

Не сообщайте клиенту…

Теперь предположим, что ваш клиент пытается получить доступ к ресурсу, к которому он вообще НЕ ДОЛЖЕН обращаться, например, потому что он принадлежит другому пользователю. Какой код состояния должен возвращать ваш API? Должен ли он возвращать код состояния 403 или 401 ?

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

Однако, поскольку этот ресурс не должен быть доступен текущему клиенту, лучше всего скрыть его. Предоставление клиенту (и особенно пользователю, стоящему за ним) информации о том, что ресурс существует, может привести к небезопасным прямым ссылкам на объекты (IDOR), уязвимости управления доступом, основанной на знании ресурсов, к которым у вас нет доступа. Поэтому в этих случаях ваш API должен отвечать 404 Not Found код состояния. Это опция, предусмотренная спецификацией HTTP:

Исходный сервер, желающий «скрыть» текущее существование запрещенного целевого ресурса, МОЖЕТ вместо этого ответить кодом состояния 404 (не найдено).

Например, это стратегия, принятая GitHub, когда у вас нет разрешения на доступ к репозиторию. Этот подход позволяет избежать повторной попытки злоумышленника получить доступ к ресурсу с несколько иной стратегией.

Что делать с неправильными запросами

Когда клиент отправляет некорректный запрос, вы должны ответить с кодом состояния 400 Bad Request . У вас может возникнуть соблазн проанализировать правильность запроса перед оценкой учетных данных клиента. Вы не должны этого делать по нескольким причинам:

  • Оценивая учетные данные клиента перед действительностью запроса, вы избегаете обработки запросов API, которые не могут быть там.
  • Потенциальный злоумышленник может выяснить, как должен выглядеть запрос без аутентификации, даже до получения или кражи законного токена доступа.

Также учтите, что в инфраструктурах со шлюзом API учетные данные клиента будут предварительно оцениваться самим шлюзом, который вообще не знает, какие параметры ожидает API.

Обсуждаемые здесь меры безопасности должны применяться в производственной среде. Конечно, в среде разработки ваш API может предоставить всю информацию, необходимую для диагностики причин сбоя авторизации.

Резюме

Из этой статьи вы узнали, что:

  • 400 Неверный запрос — это код состояния, который возвращается, когда форма запроса клиента не соответствует ожиданиям API.
  • 401 Неавторизованный — это код состояния, который возвращается, когда клиент не предоставляет учетные данные или неверные учетные данные.
  • 403 Запрещено — это код состояния, который возвращается, когда у клиента есть действительные учетные данные, но недостаточно привилегий для выполнения действия над ресурсом.

Вы также узнали, что некоторые проблемы с безопасностью могут возникнуть, когда ваш API раскрывает детали, которыми могут воспользоваться злоумышленники. В этих случаях вы можете использовать более ограниченную стратегию, включив только необходимые данные в текст ответа или даже используя код состояния 404 Not Found вместо 403 Forbidden или 401 Unauthorized .

Следующая шпаргалка обобщает то, что вы узнали:

Код состояния HTTP 403 — Служба хранилища объектов

В этом разделе описываются причины ошибок, возвращаемых с кодом состояния HTTP 403, и решения этих ошибок.

Доступ запрещен

  • Сообщение об ошибке: Сегмент, к которому вы пытаетесь получить доступ, должен быть адресован с использованием указанной конечной точки. Отправляйте все будущие запросы на эту конечную точку.

    Причина. Конечная точка, используемая для доступа к корзине, неверна.

    Решение. Убедитесь, что вы используете правильную конечную точку для доступа к корзине. Например, если вы хотите получить доступ к корзине в регионе Китай (Ханчжоу) ( oss-cn-hangzhou ), используйте следующую общедоступную конечную точку региона: oss-cn-hangzhou.aliyuncs.com . Дополнительные сведения о конечных точках см. в разделе доменные имена OSS.

  • Сообщение об ошибке: Этот запрос запрещен kms.

    Причина. У вас нет прав на использование службы управления ключами (KMS).

    Решение. Убедитесь, что у вас есть разрешения на использование указанной основной записи клиента. ключ (СМК). Дополнительные сведения см. в разделе Шифрование на стороне сервера.

  • Сообщение об ошибке: Доступ запрещен.

    Причина: у вас нет прав доступа к ресурсам.

    Решение:

    • Убедитесь, что для доступа к Ресурсы. Дополнительные сведения см. в разделе Создание пары AccessKey для пользователя ОЗУ.
    • Убедитесь, что у пользователя оперативной памяти есть права на выполнение операций с корзиной или объект, которым вы хотите управлять.
  • Сообщение об ошибке: У вас нет прав доступа к этому объекту.

    Причина. Используемый пользователь ОЗУ не имеет прав доступа к объекту.

    Решение: Убедитесь, что используемый вами пользователь ОЗУ имеет права доступа к объекту. Дополнительные сведения о том, как настроить права доступа в различных сценариях, см. см. Учебник: Использование политик RAM для управления доступом к OSS.

  • Сообщение об ошибке: Анонимный пользователь не имеет права доступа к этому сегменту.

    Причина: у анонимных пользователей нет прав доступа к корзине.

    Решение. Настройте политику корзины, предоставляющую анонимным пользователям разрешения на доступ. ведро. Дополнительные сведения см. в разделе Настройка политик сегментов, чтобы разрешить другим пользователям доступ к ресурсам OSS.

  • Сообщение об ошибке: Анонимный пользователь не имеет права доступа к этому объекту.

    Причина: у анонимных пользователей нет прав доступа к объекту.

    Решение. Настройте политику корзины, предоставляющую анонимным пользователям разрешения на доступ. определенные ресурсы в ведре. Дополнительные сведения см. в разделе Настройка политик сегментов, чтобы разрешить другим пользователям доступ к ресурсам OSS.

  • Сообщение об ошибке: Вам отказано политикой реферера корзины.

    Причина: доменное имя, используемое для доступа к ресурсу, не включено в Referer белый список.

    Решение. Настройте белый список Referer для корзины и укажите, разрешать ли пустые поля Referer. Таким образом, будут обрабатываться только запросы от включенных доменных имен. в белом списке Referer может получить доступ к ресурсам в корзине. Чтобы получить больше информации, см. раздел Настройка защиты от хотлинка для корзины.

  • Сообщение об ошибке: Недействительно в соответствии с политикой: Срок действия политики истек.

    Причина. Недопустимое поле формы политики в запросе PostObject.

    Решение. Задайте в поле формы политики допустимое значение. Поле формы политики в PostObject request используется для проверки правильности запроса. Значение формы полиса поле представляет собой строку JSON, закодированную в UTF-8 и Base64. Это значение указывает условия, которые должны быть соблюдены для запроса PostObject. Следующий код обеспечивает пример поля формы политики в запросе PostObject:

     { "срок действия": "2014-12-01T12:00:00.000Z",
      "условия": [
        {"ведро": "джонсмит"},
        ["начинается с", "$key", "user/eric/"]
      ]
    } 

    Дополнительные сведения об условиях, поддерживаемых в поле формы политики, см. Приложение: Политика.

  • Сообщение об ошибке: Недействительно в соответствии с политикой: Условие политики не выполнено: » + RelatedUnit; //XXX

    Причина: Условия, указанные в поле формы политики, недействительны.

    Решение: Убедитесь, что условия, указанные в поле формы политики, действительны. Для получения дополнительной информации об условиях, поддерживаемых в поле формы политики, и о том, как условия соблюдены, см. Приложение: Политика.

  • Сообщение об ошибке: Недействительно в соответствии с политикой: Ошибка условия политики: [«eq», «$Content-Type», «image/png»]

    Причина: Тип загружаемого объекта не соответствует указанному Content-Type. ценность.

    Решение. Параметр Content-Type в политике используется для ограничения типа объекта. для загрузки. Если для параметра Content-Type установлено значение image/png, вы можете загрузить только объекты типа IMAGE или PNG. Задайте для параметра Content-Type тип загружаемого объекта. Дополнительные сведения о допустимых значениях Content-Type см. см. Как настроить заголовок Content-Type?.

  • Сообщение об ошибке: Целевой объект не находится в том же центре обработки данных, что и исходный объект.

    Причина: Объекты не могут быть скопированы между корзинами в разных регионах.

    Решение. Убедитесь, что исходный и целевой сегменты расположены в том же регионе. Дополнительные сведения см. в разделе Копиобъект.

  • Сообщение об ошибке: Для проверки подлинности строки запроса требуются параметры Signature, Expires и OSSAccessKeyId.

    Причина: обязательные параметры не включены в подписанный URL-адрес.

    Решение. Включите в подписанный URL-адрес следующие параметры: Signature, Expires и OSSAccessKeyId. Пример: http://oss-example.oss-cn-hangzhou.aliyuncs.com/oss-api.pdf?OSSAccessKeyId=nz2pc56s936**9l&Expires=1141889120&Signature=vjbyPxybdZaNmGa%2ByT272YEAiv**** . Дополнительные сведения о том, как добавить подпись к URL-адресу, см. в разделе Добавление подписи к URL-адресам.

  • Сообщение об ошибке: Неверная дата (должна быть в секундах с начала эпохи).

    Причина: Недопустимое значение параметра Expires.

    Решение. Укажите допустимое значение параметра Expires. Параметр Expires указывает момент времени, когда истекает срок действия URL-адреса. Значение этого параметра временная метка UNIX, представляющая собой количество секунд, прошедших с 00:00:00 четверга, января 1, 1970.

  • Сообщение об ошибке: Срок действия запроса истек.

    Причина: срок действия запроса истек.

    Решение: Настройте параметр Expires в соответствии с вашими бизнес-требованиями.

  • Сообщение об ошибке: У вас нет разрешения на чтение этого объекта.

    Причина: У вас нет прав на чтение объекта.

    Решение. Обратитесь к владельцу объекта, чтобы получить права на чтение объекта.

  • Сообщение об ошибке: У вас нет разрешения на запись для этого объекта.

    Причина: У вас нет прав на запись объекта.

    Решение. Обратитесь к владельцу объекта, чтобы получить права на запись объекта.

  • Сообщение об ошибке: : У вас нет разрешения на чтение ACL для этого объекта.

    Причина. У вас нет прав на чтение списка управления доступом (ACL) объекта.

    Решение. Обратитесь к владельцу объекта, чтобы получить разрешения на выполнение операции GetObjectACL над объектом.

  • Сообщение об ошибке: У вас нет разрешения на запись для этого объекта.

    Причина: У вас нет прав на запись в ACL объекта.

    Решение. Обратитесь к владельцу объекта, чтобы получить разрешения на выполнение операции PutObjectACL над объектом.

  • Сообщение об ошибке: У вас нет прав на доступ к этому объекту из-за списка доступа к корзине.

    Причина: У вас нет прав доступа к объекту.

    Решение. Получите соответствующие разрешения на объект для выполнения операций с ним. объект, например PutObject, GetObject и AppendObject. Дополнительные сведения см. в разделе Общие примеры политик RAM.

  • Сообщение об ошибке: Анонимный доступ для этой операции запрещен.

    Причина: у анонимных пользователей нет разрешений на выполнение операции.

    Решение. Настройте политику корзины, предоставляющую анонимным пользователям разрешения на доступ. определенные ресурсы в ведре. Дополнительные сведения см. в разделе Настройка политик сегментов, чтобы разрешить другим пользователям доступ к ресурсам OSS.

  • Сообщение об ошибке: Доступ запрещен политикой корзины.

    Причина. Доступ к корзине запрещен политикой корзины.

    Решение. Настройте политики сегментов в соответствии с вашими бизнес-требованиями. Для большего сведения см. в разделе Настройка политик корзины, чтобы разрешить другим пользователям доступ к ресурсам OSS.

  • Сообщение об ошибке: Доступ запрещен политикой конечной точки VPC.

    Причина. Политика авторизации добавлена ​​в виртуальное частное облако (VPC), которое клиент развернут. В результате неавторизованные корзины не могут быть доступны в VPC.

    Решение: проверьте политику авторизации, настроенную для VPC.

  • Сообщение об ошибке: Иерархическое пространство имен отключено.

    Причина. Для корзины не включена функция иерархического пространства имен.

    Решение. Включите функцию иерархического пространства имен при создании корзины и ее переименовании. каталог или объект. Дополнительные сведения о регионах и сценариях, в которых доступна функция иерархического пространства имен, см. Иерархическое пространство имен.

  • Сообщение об ошибке: Доступ запрещен политикой авторизатора.

    Причина: У вас нет прав для выполнения этой операции.

    Решение. Временные учетные данные получают перекрывающиеся разрешения, предоставленные на шагах 4 и 5 раздела Использование временных учетных данных, предоставленных STS, для доступа к разделу OSS. Обратитесь к следующие примеры, чтобы проверить, перекрываются ли требуемые разрешения между разрешения, предоставленные на этих двух шагах.

    • Пример 1

      Если разрешение роли, настроенное на шаге 4, является системным разрешением AliyunOSSFullAccess , а разрешение oss:PutObject настроено на шаге 5, учетные данные для временного доступа, наконец, получают разрешение oss:PutObject . В этом случае вы можете загружать объекты только в указанную корзину.

    • Пример 2

      Если разрешения роли, настроенные на шаге 4, являются системным разрешением oss:PutObject , а разрешение oss:GetObject настроено на шаге 5, временные учетные данные доступа не получаются. любое разрешение. То есть вы не можете выполнять какие-либо операции над указанным бакетом.

Доступ запрещен

  • Сообщение об ошибке: CORSResponse: этот запрос CORS не разрешен. Обычно это связано с тем, что оценка происхождения, метод запроса / Access-Control-Request-Method или Access-Control-Requet-Headers не внесены в белый список спецификацией CORS ресурса.
  • Причина. Совместное использование ресурсов между источниками (CORS) не настроено для корзины или настроенные правила CORS неверны.
  • Решение. См. раздел Настройка CORS.

Постоянное перенаправление

  • Сообщение об ошибке: Сегмент, к которому вы пытаетесь получить доступ, должен быть адресован с использованием указанной конечной точки. Отправляйте все будущие запросы на эту конечную точку.
  • Причина: Конечная точка не указана или указана неверная конечная точка при используйте SDK Object Storage Service (OSS) для доступа к корзине. Например, сообщение об ошибке возвращается, если вы используете конечную точку по умолчанию oss-cn-hangzhou.aliyuncs.com для доступа к корзине, созданной в регионе Китай (Циндао).
  • Решение. Используйте конечную точку региона, в котором находится сегмент, для доступа ведро. Например, если вы хотите получить доступ к корзинам в Китае (Ханчжоу) и Китай (Циндао) регионы, рекомендуем соответственно создавать отдельные OSSClient экземпляров для каждого региона. Добавить oss-cn-hangzhou.aliyuncs.com экземпляру OSSClient, который вы хотите использовать для доступа к корзине в Китае. (Ханчжоу) и oss-cn-qingdao.aliyuncs.com экземпляру OSSClient, который вы хотите использовать для доступа к корзине в Китае. (Циндао) район.

SecondLevelDomainForbidden

  • Сообщение об ошибке: Сегмент, к которому вы пытаетесь получить доступ, должен быть адресован с использованием домена третьего уровня OSS.

    Причина: Имя домена в запросе не является доменом третьего уровня.

    Решение. Включите домены третьего уровня, содержащие информацию о сегментах, во все запросы, за исключением запросов, которые вы отправляете для выполнения операции GetService (ListBuckets). Доменное имя, используемое для доступа к корзине, имеет формат BucketName.Endpoint . BucketName указывает имя корзины, а Endpoint указывает конечную точку. области, в которой находится ковш. Пример: https://examplebucket.oss-cn-hangzhou.aliyuncs.com .

  • Сообщение об ошибке: Пожалуйста, используйте стиль виртуального размещения для доступа.

    Причина: URL-адрес, используемый для доступа к OSS, недействителен.

    Решение. Используйте URL-адрес в следующем формате для доступа к ресурсам OSS через Интернет: <Схема>://<Корзина>. <Общая конечная точка>/<Объект> . В предыдущем URL-адресе Schema указывает протокол, который используется URL-адресом, например как HTTP и HTTPS, Bucket указывает имя корзины, в которой находится объект, к которому вы хотите получить доступ, хранится, общедоступная конечная точка указывает на конечную точку, используемую для доступа регион, в котором находится ведро, а Object указывает путь к загруженному объект, к которому вы хотите получить доступ.

    Например, если вы хотите получить доступ к объекту с именем example.txt в каталоге destfolder/ корзины с именем examplebucket в Китае (Ханчжоу) региона можно использовать следующий URL-адрес: https://examplebucket.oss-cn-hangzhou.aliyuncs.com/destfolder/example.txt .

NonStandardHostForbidden

  • Сообщение об ошибке: Ваш хост недействителен. Используйте стандартный хост Open Storage Service.
  • Причина: Имя домена, используемое для доступа к OSS, недопустимо.
  • Решение. Используйте стандартное доменное имя для доступа к ресурсам OSS. Чтобы получить больше информации, см. доменные имена OSS.

Кмсубсмсинвалидбид

  • Сообщение об ошибке: У вашего партнера по работе с клиентами нет службы KMS.
  • Причина: KMS не активирован.
  • Решение. Активируйте KMS, прежде чем использовать метод SSE-KMS для шифрования данных в OSS. За Дополнительные сведения см. в разделе Активация KMS.

KmsInDebt

  • Сообщение об ошибке: Текущий пользователь имеет задолженность.
  • Причина: в вашей учетной записи Alibaba Cloud просрочены платежи. Уведомление отправляется на вам и вашему доступу к KMS отказано.
  • Решение: убедитесь, что в вашей учетной записи Alibaba Cloud нет просроченных платежей когда вы хотите использовать KMS.

KmsInDebtOverdue

  • Сообщение об ошибке: Текущий пользователь просрочен.
  • Причина: В вашем аккаунте есть просроченные платежи за KMS.
  • Решение. Пополните счет, чтобы использовать KMS.

WORMConfigurationLocked

  • Сообщение об ошибке: Конфигурация WORM заблокирована.
  • Причина: Вы пытаетесь удалить заблокированную политику хранения.
  • Решение. Не пытайтесь удалить заблокированную политику хранения. Заблокированные политики хранения не может быть удален. Срок защиты, указанный в политике хранения, не может может быть укорочен, но может быть только продлен. Дополнительные сведения см. в разделе Политика хранения.

BucketNotBelongTo

  • Сообщение об ошибке: Сегмент, к которому вы обращаетесь, не принадлежит вам.
  • Причина: Вы не являетесь владельцем корзины.
  • Решение. Перед выполнением операции убедитесь, что вы являетесь владельцем корзины. Операцию может выполнять только владелец корзины.

Инвалидаксесскэйид

  • Сообщения об ошибках:
    • Указанный вами идентификатор ключа доступа к OSS отключен.
    • Предоставленный вами идентификатор ключа доступа OSS не существует в наших записях.
    • Идентификатор ключа доступа к OSS содержит недопустимые символы, поэтому допустимы только буквенно-цифровые символы. символы [0-9a-zA-Z] и несколько специальных символов [._=]
  • Причина: идентификатор AccessKey не существует или недействителен.
  • Решение. Если у вас нет идентификатора AccessKey, создайте идентификатор AccessKey и используйте его для доступ к ОСС. Если ваш идентификатор AccessKey отключен, включите его. Для получения дополнительной информации см. Получите пару AccessKey.

SignatureDoesNotMatch

  • Сообщение об ошибке: Рассчитанная нами подпись запроса не соответствует предоставленной вами подписи.
  • Причина: Произошла ошибка подписи.
  • Решение: См. FAQ.

Трансферакселератиондисаблед

  • Сообщение об ошибке: Ускорение передачи отключено.
  • Причина: Ускорение передачи отключено.
  • Решение. Если вы хотите ускорить удаленную передачу данных, ускорьте загрузку и загрузка объектов размером в гигабайты или терабайты, и ускорение загрузки нестатических и негорячих данных, включить ускорение передачи. Чтобы получить больше информации, см. Ускорение передачи.

Неверный маркер безопасности

  • Сообщение об ошибке: Предоставленный вами токен безопасности недействителен.
  • Причина: Временные учетные данные, используемые для доступа к OSS, недействительны.
  • Решение. См. раздел Использование временных учетных данных, предоставленных службой STS, для доступа к OSS.

AccessKeyIdAndSecurityTokenNotMatch

  • Сообщение об ошибке: Идентификатор ключа доступа OSS и предоставленный вами маркер безопасности не совпадают.
  • Причина. Предоставленная вами пара AccessKey не соответствует используемым временным учетным данным. для доступа к ОСС.
  • Решение. См. раздел Использование временных учетных данных, предоставленных службой STS, для доступа к OSS.

SecurityTokenExpired

  • Сообщение об ошибке: Срок действия предоставленного вами токена безопасности истек.
  • Причина: Срок действия временных учетных данных, используемых для доступа к OSS, истек.
  • Решение. Отправьте запрос на получение новых учетных данных для временного доступа от STS.

AbnormalBucketOwnerStatus

  • Сообщение об ошибке: Ненормальное состояние владельца корзины.
  • Причина: Служба недоступна для владельца корзины.
  • Решение. Проверьте, не удалена ли учетная запись Alibaba Cloud владельца корзины. ограничено по соображениям безопасности или приостановлено из-за просроченных платежей.

SecurityTokenNotSupported

  • Сообщение об ошибке: Этот интерфейс не поддерживает токен безопасности.

    Причина. Текущая операция не может быть вызвана пользователями, имеющими только временный доступ. реквизиты для входа.

    Решение. Используйте другие методы вместо токенов STS для предоставления необходимых разрешений пользователей для доступа к вашим корзинам. Вы можете использовать токены STS для предоставления разрешений только конкретным пользователям для временного доступа к ресурсам OSS. Для получения дополнительной информации об авторизации методы, см. Обзор.

  • Сообщение об ошибке: Маркер безопасности не поддерживается в этом регионе.

    Причина. Маркеры STS не поддерживаются в текущем регионе.

    Решение. Используйте методы, отличные от токенов STS, для авторизации пользователей для доступа к вашим корзинам. Дополнительные сведения о регионах, поддерживающих маркеры STS, см. в разделе Конечные точки.

RequestTimeTooSkewed

Повреждение изображения

  • Сообщение об ошибке: Возможно, файл изображения поврежден.
  • Причина: Изображение не может быть идентифицировано или обработано из-за повреждения или отсутствия данных.
  • Решение: Убедитесь, что изображение не повреждено. Если изображение повреждено, перезалейте изображение.

UserDisable

  • Сообщение об ошибке: UserDisable
  • Причины:
    • Ваша учетная запись заблокирована из-за просроченных платежей или по соображениям безопасности.
    • Для вашей учетной записи не активировано OSS.
  • Решения:
    • Проверьте наличие просроченных платежей по вашему счету или обратитесь в службу технической поддержки для выполнения проверка безопасности.
    • Активировать OSS.

BucketDisable

  • Сообщение об ошибке: BucketDisable.
  • Причина: Ведро отключено из соображений безопасности.
  • Решение: проверьте, есть ли в вашем аккаунте просроченные платежи, или обратитесь в службу технической поддержки выполнить проверку безопасности.

CnameDenied

  • Сообщение об ошибке: cname принадлежит другому пользователю.
  • Причина: Имя домена сопоставлено с другим сегментом.
  • Решение. Используйте другое доменное имя или подтвердите право собственности на доменное имя и принудительно сопоставьте доменное имя с ведром. Эта операция отменяет сопоставление имени домена с предыдущее ведро. См. Сопоставление пользовательских доменных имен, чтобы решить эту проблему.

Инвалидобжектстате

  • Сообщение об ошибке: Операция недопустима для состояния объекта.
  • Причина: Если выполняется одно из следующих условий, состояние объекта Архив становится инвалид:
    • Время ожидания запроса RestoreObject, отправленного для объекта, истекло или он не был инициирован.
    • Запрос RestoreObject, отправленный для объекта, был инициирован, но объект не был восстановлен.
  • Решение: См. RestoreObject.

403 Определение кода состояния ответа HTTP: пример, использование, методы

Код состояния HTTP 403, означающий «запрещено», возвращается, когда клиент пытается получить доступ к содержимому веб-сервера, но не имеет на это полномочий из-за своего несанкционированного статуса.

Как использовать код состояния HTTP 403 для веб-сайта?

Чтобы использовать код состояния HTTP 403 на веб-сайте, веб-разработчик должен использовать внутренние инструменты веб-сервера для масштабирования, эффективности и способности немедленно реагировать на запросы и запросы клиентов. Код состояния HTTP 403 с функцией «заголовок» может использоваться разработчиком на JavaScript, Python, Ruby, PHP, Java, C#.Net, Perl, C++, Scala и Kotlin. Веб-разработчик должен распознавать запрошенный ресурс, если он недоступен. Это может свидетельствовать о том, что запрос был отправлен с неправильным логином и паролем, или что разрешения веб-сервера не разрешают то, что было запрошено.

Чтобы проверить 403 Код состояния HTTP Forbidden Error, для начала определите, есть ли конечная точка VPC для службы Execute API в VPC. Это можно проверить, перейдя в консоль управления AWS. Перейдите к консоли VPC после входа в консоль управления AWS. Затем на левой панели навигации выберите Endpoints. Наконец, используйте идентификатор VPC для фильтрации конечных точек VPC.

Какой метод HTTP используется с кодом состояния HTTP 403?

Существует только один метод, используемый с кодом состояния HTTP 403, который является методом HEAD. Метод HEAD запрашивает ответ, идентичный ответу метода GET, но без содержимого ответа.

Доступны соответствующие заголовки ответа HTTP с кодом состояния 403 HTTP. Заголовки ответов HTTP, связанные с кодом состояния 403 HTTP, перечислены ниже.

  • 405 Метод не разрешен Код состояния HTTP: Код состояния HTTP 405 связан с кодом состояния HTTP 403, поскольку оба они являются ответами на ошибку клиента. Код состояния HTTP 405 указывает, что серверу известен метод запроса, но целевой ресурс его не поддерживает. Например, API может не разрешать использование DELETE для удаления ресурса.
  • 409 Конфликт: код состояния HTTP 409 связан с кодом состояния HTTP 403, поскольку оба они являются ответами на ошибку клиента. Этот ответ выдается, когда запрос конфликтует с текущим статусом сервера.

Вы можете увидеть таблицу, которая показывает совместимость браузера с кодом состояния 403 HTTP ниже.

Имя браузера Совместимость с браузером 403 Код состояния HTTP
Chrome ДА
Edge YES
Firefox YES
Internet Explorer YES
Opera YES
Safari YES
Webview Android YES

Существуют и другие коды состояния HTTP, аналогичные коду состояния 403 HTTP. Ниже перечислены следующие.

  • 401 Неавторизованный код состояния HTTP: код состояния HTTP 401 аналогичен коду состояния HTTP 403, поскольку оба они являются ответами на ошибку клиента. Код состояния HTTP 401 указывает на то, что, несмотря на то, что стандарт HTTP определяет «неавторизованный», этот ответ логически указывает на «не прошедший проверку подлинности». Чтобы получить запрошенный ответ, клиент должен сначала аутентифицировать себя.
  • 402 Payment Required Код состояния HTTP: код состояния HTTP 402 аналогичен коду состояния HTTP 403, поскольку они оба являются ответами на ошибку клиента. Код состояния HTTP 402 указывает, что код ответа будет использоваться в будущем. Целью изобретения этого кода было использование его в цифровых платежных системах; однако этот код состояния используется нечасто, и единообразной практики не существует.
  • 404 Not Found Код состояния HTTP: код состояния HTTP 404 аналогичен коду состояния HTTP 403, поскольку оба они являются ответами на ошибку клиента. Код состояния HTTP 404 указывает на то, что серверу не удалось найти запрошенный ресурс. Это означает, что URL-адрес не распознан браузером. Это также может означать, что конечная точка верна, но ресурс не существует в API. Кроме того, серверы могут использовать этот ответ вместо 403 Forbidden, чтобы скрыть существование ресурса от неавторизованного клиента. Из-за частого присутствия в сети этот код ответа, вероятно, является наиболее известным.
  • 406 Неприемлемый код состояния HTTP: код состояния HTTP 406 аналогичен коду состояния HTTP 403, поскольку оба они являются ответами на ошибку клиента. Код состояния HTTP 406 указывает, что ответ доставлен, когда веб-сервер не находит никакого контента, который соответствует критериям пользовательского агента после завершения согласования контента на основе сервера.
  • Автор
  • Последние сообщения

Целостное SEO

Департамент исследований SEO в Holistic SEO & Digital

Holistic SEO & Digital был создан Кораем Тугберком ГУБУРом.