Вовед во CORS Проверка
Алатката CORS Проверка е специјализиран инструмент кој ви помага да разберете дали одреден веб-прелистувач би дозволил конкретно барање меѓу различни потекла (cross-origin request). Оваа проценка се врши врз основа на HTTP заглавијата за одговор што ги внесувате и специфичните детали на вашето планирано барање.
За да ја користите алатката, потребно е да ги залепите заглавијата на одговорот, да го одредите потеклото, методот и заглавијата на барањето, како и да назначите дали се вклучени акредитиви. Врз основа на овие податоци, алатката анализира и ви соопштува дали прелистувачот би го дозволил барањето, детално објаснувајќи ја својата одлука според CORS политиката.
Како да ги подготвите влезовите за проверка
За да извршите точна проверка, алатката бара конфигурација на следните полиња во интерфејсот:
- Одговор за проверка (Одговор за проверка): Избор помеѓу опциите Вистински одговор (Вистински одговор) или Одговор пред лет (Одговор пред лет).
- HTTP Заглавија на одговор (HTTP Заглавија на одговор): Текстуално поле каде што ги лепите HTTP заглавијата на одговорот. Доколку проверувате одговор пред лет, во ова поле треба да ја залепите и статусната линија. Максималната дозволена должина на овој внес е 200.000 знаци.
- Барај потекло (Барај потекло): Текстуално поле за внесување на шемата, домаќинот и изборната порта на потеклото (на пример:
https://app.example.com). Ова мора да биде чисто потекло илиnull, што значи дека не се дозволени патеки на URL, прашалници за пребарување или акредитиви. - Баран метод (Баран метод): Текстуално поле за внесување на HTTP методот.
- Барани имиња на заглавија (Барани имиња на заглавија): Текстуално поле за внесување на имињата на заглавијата од
Access-Control-Request-Headers, кои треба да бидат одделени со запирки или во нови линии. - Вклучете акредитиви (Вклучете акредитиви): Прекинувач (toggle) со кој означувате дали барањето вклучува колачиња или HTTP автентикација.
Можни грешки при внесување на податоците
Доколку внесените податоци не се правилни, алатката ќе прикаже соодветна порака за грешка:
- Ако полето за HTTP заглавија е празно: "Залепете ги заглавјата на одговорот HTTP пред да проверите."
- Ако внесениот одговор ја надминува границата: "Овој одговор е невообичаено голем. Чувајте го под
‹max›знаци." - Ако линијата во заглавието е невалидна: "линијата
‹line›не е валидна HTTP заглавие или статусна линија." - Ако името на заглавието е неважечко: "Линијата
‹line›содржи неважечко име на заглавие HTTP." - Ако потеклото не е правилно форматирано: "Внесете потекло само со шема, домаќин и опционална порта, како што е https://app.example.com."
- Ако HTTP методот не е валиден: "не го дозволуваат методот ‹method› во барањата fetch."
- Ако прелистувачот не го поддржува методот: "Внесете важечки токен за методот HTTP. Прелистувачите не го дозволуваат методот
‹method›во барањата fetch." - Ако името на бараното заглавие е неважечко: "„
‹header›“ не е важечко име на заглавие на барањето HTTP." - Општа грешка за неисправни полиња: "Поправете го означениот влез и обидете се повторно."
Разбирање на одлуката на прелистувачот
По извршената анализа, алатката ја прикажува крајната одлука во делот Одлука на прелистувачот (Одлука на прелистувачот). Можните состојби се:
- Залепете одговор за да ја проверите неговата политика CORS. (ready): Ова е почетната состојба пред да внесете податоци.
- Внесете одговор и детали за барањето, а потоа проверете ја политиката CORS. (Внесете одговор и детали за барањето, а потоа проверете ја политиката CORS.): Се прикажува кога нема внесено никакви податоци за проверка.
- Дозволено од залепениот одговор CORS. (allowed): Прелистувачот би го дозволил ова барање.
- Блокиран од залепениот одговор CORS. (blocked): Прелистувачот би го блокирал ова барање.
- Заглавјата поминуваат, но статусот пред лет е непознат. (indeterminate): Заглавјата се во ред, но не може да се потврди статусот на предлетот.
Дополнително, алатката ги прикажува и анализираните полиња во делот Анализирани полиња за контрола на пристап (Анализирани полиња за контрола на пристап), каде што за отсутните полиња се прикажува ознаката Не е присутно (Не е присутно).
Правила за евалуација и причини за одлуката
Алатката ја донесува својата одлука врз основа на строги CORS правила и ги прикажува следните причини за донесениот заклучок:
Проверка на потеклото (Origin)
- "Access-Control-Allow-Origin точно се совпаѓа со
‹origin›." - "Access-Control-Allow-Origin дозволува какво било потекло за ова барање."
- "Access-Control-Allow-Origin недостасува."
- "Access-Control-Allow-Origin не може да биде * кога се вклучени ингеренциите." (Доколку се вклучени акредитиви, вредноста
*е неважечка). - "Access-Control-Allow-Origin е
‹actual›, а не‹expected›." - "Access-Control-Allow-Origin има неважечка вредност:
‹value›." (Ова се случува и доколку заглавието содржи повеќе вредности или е одделено со запирки).
Проверка на акредитивите (Credentials)
- "Access-Control-Allow-Credentials е токму true."
- "За потврдено барање треба Access-Control-Allow-Credentials: true." (Акредитивите бараат експлицитна
trueвредност). - "акредитивите не се вклучени, така што Access-Control-Allow-Credentials не влијае на оваа одлука."
Статус на предлет (Preflight Status)
- "Статусот пред лет
‹status›е успешен." - "Статусот пред лет
‹status›не е успешен статус 2xx." - "Не е залепена статусна линија HTTP, така што бараниот статус на 2xx пред лет не може да се провери." (Во овој случај, резултатот за предлет се смета за неодреден).
Проверка на методи и заглавија
- "Предлетот дозволува
‹method›." - "
‹method›е метод заштитен со CORS и не треба да се појавува во Access-Control-Allow-Methods." - "Access-Control-Allow-Methods не дозволува
‹method›." - "Нема барани имиња на заглавија треба да се одобруваат пред лет."
- "Предлетот ги дозволува бараните имиња на заглавијата:
‹headers›." - "Access-Control-Allow-Headers: * ги опфаќа овие имиња за барање без ингеренции:
‹headers›." - "Access-Control-Allow-Headers не дозволува:
‹headers›." - "Authorization мора да се наведе експлицитно; Access-Control-Allow-Headers: * не го покрива." (Заглавието
Authorizationсекогаш мора да биде експлицитно наведено, дури и кога се користи џокер*).
Ограничувања на алатката и приватност
Оваа алатка е наменета за брза статичка проверка на заглавијата. Таа не остварува контакт со надворешни сервери, не чита URL адреси, не поставува колачиња, не врши проверки на DNS/TLS и не ги менува конфигурациите на серверот.
Поради тоа, позитивниот резултат од проверката се однесува исклучиво на залепените заглавија и внесените детали. Тој не гарантира дека реалното барање во живо ќе успее, бидејќи алатката не може да ги предвиди пренасочувањата, кешираните одговори, промените во серверските правила, влијанието на екстензиите на прелистувачот или вистинскиот одговор што серверот ќе го испрати по предлетот.
Што се однесува до вашата приватност, вашите заглавија и детали за барањата остануваат во вашиот прелистувач. Ништо не е поставено или зачувано од страна на BroBroGo.
Често поставувани прашања (FAQ)
Дали треба да го залепам вистинскиот одговор или одговорот пред лет?
Користете го вистинскиот одговор за да проверите дали кодот на прелистувачот може да прочита еден одговор. Користете го Preflight одговорот за одговорот OPTIONS кој одобрува подоцнежен метод и неговите барани имиња на заглавија.
Зошто џокерот може да не успее со ингеренциите?
Кога се вклучени колачиња или автентикација HTTP, дозволеното потекло мора точно да одговара на потеклото на барањето. Картичките за џвакање за дозволени методи и заглавија, исто така, го губат значењето на џокерите.
Дали проодниот резултат докажува дека барањето во живо ќе работи?
Не. Овој резултат ги опфаќа само залепениот одговор и деталите за барањето внесени овде. Пренасочувањата, кешираните одговори, менувањето на правилата на серверот, екстензии на прелистувачот и вистинскиот одговор по предлетот сепак може да го променат исходот.