CORS Checker - Знайдіть перевірку, що блокує ваш міжджерельний запит | POLPROG Перейти до вмісту

CORS Checker

Знайдіть перевірку, що блокує ваш міжджерельний запит

Чи дозволив би браузер вашому коду прочитати цю відповідь? А якщо ні, яка перевірка сказала ні.

Вебінструмент Web
Офіційна сторінка продукту Видавець: POLPROG
Офіційна сторінка продукту
6
Етапи аналізу
5
Вкладки звіту
10
Джерел за один запуск
0
Надіслано тіл запитів
01CORS Checker

Про застосунок

Це діагноз одного запиту, а не вивантаження заголовків. Ви описуєте виклик, який робить ваш код - кінцеву точку, джерело, на якому він працює, метод, заголовки, які він ставить, чи надсилає він облікові дані - і інструмент каже, чи дозволив би браузер вам прочитати відповідь і яка саме перевірка це вирішила.

Що насправді відбувається під час аналізу

  1. Підготовка запиту точно так, як його описано.
  2. Класифікація як простий або з preflight, за правилами стандарту Fetch, які застосовує браузер.
  3. Перевірка preflight справжнім запитом OPTIONS із заголовками Origin, Access-Control-Request-Method і, за потреби, Access-Control-Request-Headers.
  4. Надсилання справжнього запиту, бо сам preflight ніколи не показує заголовки CORS на справжній відповіді.
  5. Перевірка переліку дозволених джерел одним додатковим запитом із джерелом, якого сервер ніколи не бачив.
  6. Побудова звіту: вердикт, перебіг запиту, заголовки, висновки та технічний обмін.

Перевірка переліку дозволених

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

Облікові дані змінюють правила

ЗаголовокЗ обліковими даними
Access-Control-Allow-OriginБез зірочкиМає назвати джерело. Зірочку відхиляють прямо, навіть поряд з Access-Control-Allow-Credentials: true.
Allow-Methods, Allow-Headers, Expose-HeadersДослівноЗірочка перестає бути символом підстановки й читається як дослівна назва заголовка чи методу.
Access-Control-Allow-CredentialsОбов'язковийЄдине прийнятне значення - точний рядок true малими літерами.

Висновки, а не прикметники

Кожен висновок несе рівень серйозності, категорію, фазу, з якої він походить, доказ, на який спирається, заголовки, яких стосується, і рекомендацію. Перелічено також перевірки, що пройшли, тож чистий результат видно, а не просто порожньо. Два правила, яких дотримуються рекомендації, бо очевидна порада часто буває хибною: ніщо тут не каже вам відкрити метод, заголовок чи джерело лише для того, щоб зникла червона рамка - заблокований DELETE може бути правильно закритою кінцевою точкою - і ніщо тут ніколи не пропонує відбивати довільний Origin. Відповідь - це перелік дозволених, щоразу.

На що він не претендує

CORS вирішує, які джерела можуть читати відповідь усередині браузера. Це не автентифікація, він не надає дозволів і не спиняє міжсайтову підробку запитів, бо атаці CSRF ніколи не потрібно читати відповідь. Будь-який клієнт, що не є браузером, повністю його ігнорує. Цей інструмент каже про це прямо, а не дозволяє зеленому вердикту натякати, що ваша кінцева точка захищена.

02Застосування

Що це розвʼязує

Проблема
  • Це працює в curl і Postman, а в браузері підводить
  • Консоль каже, що заблоковано політикою CORS, і майже нічого більше
  • Preflight підводить, кінцева точка ніколи не бачить запиту, а журнали лишаються порожніми
Результат
  • Названо точну перевірку, що спиняє браузер
  • Справжній preflight і справжній запит, обидва справді надіслані
  • Виправлення, що не означає відкрити кінцеву точку
Для кого
  • Фронтенд-розробники, чий виклик fetch блокується
  • Команди API, що налаштовують CORS у кількох середовищах
  • Кожен, хто налагоджує preflight, якого сам не писав
03Ключові можливості

Ключові можливості

Найважливіші можливості з практичними поясненнями.

Вердикт щодо одного конкретного запиту

Дозволено чи заблоковано, саме для того методу, заголовків, джерела та режиму облікових даних, які ви описуєте, з названою перевіркою, що це вирішила. Не перелік заголовків, залишений на ваше тлумачення.

Справжній preflight і справжній запит

Шість етапів, про кожен повідомляється щойно він завершується. Preflight OPTIONS вирушає так, як його надіслав би браузер, а за ним іде справжній запит, бо сам preflight ніколи не показує заголовки CORS на справжній відповіді.

Простий чи з preflight, вирішено як слід

Запит простий лише тоді, коли метод - це GET, HEAD або POST, а кожен заголовок є в безпечному переліку CORS, причому Content-Type обмежено трьома значеннями. Інструмент застосовує правило, а не вгадує, і саме звідти зазвичай береться несподіваний запит OPTIONS.

Перевірка переліку дозволених джерел

Один додатковий запит із джерела, якого сервер ніколи не бачив, відділяє справжній перелік дозволених від сервера, що відбиває все, що отримує. Ці два випадки виглядають однаково, якщо ви перевіряєте лише власне джерело.

Запити з обліковими даними судять за їхніми власними правилами

Джерело-зірочка стає недійсним, а зірочки в Allow-Methods, Allow-Headers і Expose-Headers перестають бути символами підстановки й читаються як дослівні назви. Аналіз застосовує суворіший набір правил, а не звичний.

Переспрямування перевіряються на кожному кроці

Браузер починає перевірку CORS заново за кожного переспрямування, тож кожен крок оцінюється знову, перш ніж за ним піти. Ланцюг, що завершується в поблажливому місці, все одно може бути заблокований дорогою.

Кілька джерел за один запуск

До десяти додаткових джерел, перевірених проти тієї самої кінцевої точки й показаних таблицею, це найшвидший спосіб підтвердити, що локальне, тестове й робоче середовища всі є в переліку дозволених, і нічого понад це.

Висновки з доказом і рекомендацією

Кожен несе рівень серйозності, категорію, фазу, з якої походить, доказ, що за ним стоїть, і заголовки, яких стосується, поряд із перевірками, що пройшли. Жодна рекомендація не каже вам відкрити метод, заголовок чи джерело лише для того, щоб зникло попередження.

04Завантажити

Доступ до продукту

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

Виберіть потрібну платформу

Скористайтеся одним з офіційних посилань для свого пристрою або браузера.

Установіть або відкрийте

Дотримуйтеся інструкцій магазину або відкрийте вебзастосунок. Без сторонніх інсталяторів.

Налаштуйте та почніть

Перегляньте параметри, виберіть уподобання та почніть з основного робочого процесу.

Офіційні варіанти доступу
05Технології

Технології продукту

Прозорий огляд основних технологій, використаних для створення та підтримки продукту.

PHP
JavaScript
06Безпека

Конфіденційність і безпека

Ваші дані завжди залишаються на вашому пристрої.

Без облікового запису, без реєстрації
Жоден ваш файл cookie не передається далі
Тіло запиту не надсилається ніколи
Щойно звіт дістанеться вас, нічого не зберігається