CORS ստուգիչ

Ստուգեք, թե արդյոք տեղադրված պատասխանը թույլ է տալիս դիտարկիչի որոշակի ծագում, մեթոդ և հարցումների վերնագրեր:

Ստուգման պատասխանը
Կպցրեք նաև կարգավիճակի գիծը, երբ ստուգում եք նախնական թռիչքի պատասխանը:
Ծագման վերնագրում ուղարկված սխեման, հոսթ և կամընտիր նավահանգիստ:
Միացրեք այն հարցումները, որոնք ներառում են թխուկներ կամ HTTP նույնականացում:
Բրաուզերի որոշում

    Վերլուծված Access-Control դաշտերը

    HTTP status
    Access-Control-Allow-Origin
    Access-Control-Allow-Credentials
    Access-Control-Allow-Methods
    Access-Control-Allow-Headers
    Access-Control-Expose-Headers
    Access-Control-Max-Age

    Մուտքագրեք պատասխանը և հարցման մանրամասները, ապա ստուգեք CORS քաղաքականությունը:

    Տեղադրեք պատասխան՝ ստուգելու դրա CORS քաղաքականությունը:

    Ձեր վերնագրերը և հարցումների մանրամասները մնում են ձեր դիտարկիչում: BroBroGo-ում ոչինչ չի վերբեռնվում կամ պահվում:

    ՀՏՀ

    Պե՞տք է տեղադրեմ բուն պատասխանը, թե՞ նախաթռիչքային պատասխանը:

    Օգտագործեք «Փաստացի պատասխանը»՝ ստուգելու համար, թե արդյոք դիտարկիչի կոդը կարող է կարդալ մեկ պատասխան: Օգտագործեք Preflight պատասխանը OPTIONS պատասխանի համար, որը հաստատում է ավելի ուշ մեթոդը և դրա պահանջված վերնագրերի անունները:

    Ինչու՞ նիշը կարող է ձախողվել հավատարմագրերով:

    Երբ թխուկները կամ HTTP նույնականացումը ներառված են, թույլատրված սկզբնաղբյուրը պետք է ճշգրտորեն համապատասխանի հայցվող ծագմանը: Թույլատրված մեթոդների և վերնագրերի վանդակները նույնպես կորցնում են իրենց նշանի իմաստը:

    Արդյո՞ք անցողիկ արդյունքը ապացուցում է, որ կենդանի հարցումը կաշխատի:

    Ոչ: Այս արդյունքն ընդգրկում է միայն տեղադրված պատասխանը և այստեղ մուտքագրված հարցման մանրամասները: Վերահղումները, քեշավորված պատասխանները, սերվերի կանոնների փոփոխությունը, զննարկիչի ընդլայնումները և իրական պատասխանը նախնական թռիչքից հետո դեռ կարող են փոխել արդյունքը:

    Ինչ է անում CORS ստուգիչը

    Այս գործիքն օգնում է ձեզ հասկանալ, թե արդյոք վեբ դիտարկիչը թույլ կտա որոշակի խաչաձև ծագման (cross-origin) հարցում՝ հիմնվելով ձեր տրամադրած HTTP պատասխանի վերնագրերի և ձեր հարցման մանրամասների վրա: Դուք տեղադրում եք պատասխանի վերնագրերը, նշում եք ձեր նախատեսած հարցման ծագումը, մեթոդը, հարցումների վերնագրերը և նշում եք, թե արդյոք հավատարմագրերը ներառված են: Այնուհետև գործիքը հայտնում է ձեզ, թե արդյոք դիտարկիչը թույլ կտա հարցումը՝ բացատրելով իր որոշումը CORS քաղաքականության հիման վրա:

    Գործիքի մուտքային տվյալները

    Ճշգրիտ վերլուծություն ստանալու համար անհրաժեշտ է լրացնել հետևյալ մուտքային դաշտերը.

    • Ստուգման պատասխանը (Ստուգման պատասխանը). Ընտրություն «Իրական արձագանք» (Իրական արձագանք) կամ «Նախնական թռիչքի պատասխան» (Նախնական թռիչքի պատասխան) տարբերակների միջև:
    • HTTP պատասխանի վերնագրեր (HTTP պատասխանի վերնագրեր). Տեքստային դաշտ HTTP պատասխանի վերնագրերի համար, ներառյալ կարգավիճակի գիծը նախնական թռիչքի պատասխանների դեպքում:
      • Առավելագույն թույլատրելի երկարությունը 200,000 նիշ է:
      • Դատարկ թողնելու դեպքում կցուցադրվի սխալ՝ «Տեղադրեք HTTP պատասխանի վերնագրերը նախքան ստուգելը:» (Տեղադրեք HTTP պատասխանի վերնագրերը նախքան ստուգելը:):
      • Չափազանց մեծ մուտքագրման դեպքում կցուցադրվի սխալ՝ «Այս արձագանքը անսովոր մեծ է: Պահեք այն ‹max› նիշերի տակ:» (Այս արձագանքը անսովոր մեծ է: Պահեք այն ‹max› նիշերի տակ:):
      • Անվավեր տողի դեպքում կցուցադրվի սխալ՝ «‹line› տողը վավեր HTTP վերնագիր կամ կարգավիճակի տող չէ:» (‹line› տողը վավեր HTTP վերնագիր կամ կարգավիճակի տող չէ:):
      • Անվավեր վերնագրի անվան դեպքում կցուցադրվի սխալ՝ «‹line› տողը պարունակում է անվավեր HTTP վերնագրի անուն:» (‹line› տողը պարունակում է անվավեր HTTP վերնագրի անուն:):
    • Հայցեք ծագումը (Հայցեք ծագումը). Տեքստային դաշտ ծագման սխեմայի, հոսթի և կամընտիր պորտի համար (օրինակ՝ https://app.example.com): Այն պետք է լինի մաքուր ծագում կամ null՝ առանց URL-ի ուղու, հարցման (query) կամ հավատարմագրերի: Սխալ ձևաչափի դեպքում կցուցադրվի սխալ՝ «Մուտքագրեք սկզբնաղբյուր միայն սխեմայով, հոսթով և կամընտիր պորտով, ինչպիսին է https://app.example.com:» (Մուտքագրեք սկզբնաղբյուր միայն սխեմայով, հոսթով և կամընտիր պորտով, ինչպիսին է https://app.example.com:):
    • Հայցվող մեթոդ (Հայցվող մեթոդ). Տեքստային դաշտ HTTP մեթոդի համար: Անվավեր մեթոդի դեպքում հայտնվում է սխալ՝ «Մուտքագրեք վավեր HTTP մեթոդի նշան:» (Մուտքագրեք վավեր HTTP մեթոդի նշան:), իսկ արգելված մեթոդի դեպքում՝ «Զննարկիչները թույլ չեն տալիս ‹method› մեթոդը fetch հարցումներում:» (Զննարկիչները թույլ չեն տալիս ‹method› մեթոդը fetch հարցումներում:):
    • Հայցված վերնագրերի անունները (Հայցված վերնագրերի անունները). Տեքստային դաշտ Access-Control-Request-Headers-ից վերցված վերնագրերի անունների համար՝ բաժանված ստորակետերով կամ տողերով (օրինակ՝ Content-Type, Authorization): Անվավեր վերնագրի դեպքում կցուցադրվի սխալ՝ ««‹header›»-ը վավեր HTTP հարցման վերնագրի անուն չէ:» («‹header›»-ը վավեր HTTP հարցման վերնագրի անուն չէ:):
    • Ներառեք հավատարմագրերը (Ներառեք հավատարմագրերը). Փոխանջատիչ, որը նշում է, թե արդյոք հարցումը ներառում է թխուկներ (cookies) կամ HTTP նույնականացում.

    Ընդհանուր մուտքային խնդիրների դեպքում գործիքը ցույց է տալիս հետևյալ հաղորդագրությունը՝ «Ուղղեք ընդգծված մուտքագրումը և նորից փորձեք:» (Ուղղեք ընդգծված մուտքագրումը և նորից փորձեք:):

    Գործիքի ելքային տվյալները և որոշումները

    Գործիքը վերլուծում է տվյալները և ցուցադրում հետևյալ արդյունքները.

    • Բրաուզերի որոշում (Բրաուզերի որոշում).
      • «Տեղադրեք պատասխան՝ ստուգելու դրա CORS քաղաքականությունը:» (ready) — սկզբնական վիճակ:
      • «Մուտքագրեք պատասխանը և հարցման մանրամասները, ապա ստուգեք CORS քաղաքականությունը:» (Մուտքագրեք պատասխանը և հարցման մանրամասները, ապա ստուգեք CORS քաղաքականությունը:) — երբ տվյալներ ներկայացված չեն:
      • «Թույլատրված է տեղադրված CORS պատասխանով:» (allowed):
      • «Արգելափակված է տեղադրված CORS պատասխանով:» (blocked):
      • «Վերնագրերն անցնում են, բայց նախավռիչքի կարգավիճակն անհայտ է:» (indeterminate):
    • Վերլուծված Access-Control դաշտերը (Վերլուծված Access-Control դաշտերը). Ցուցադրում է վերլուծված Access-Control-* դաշտերը:
    • Որոշման պատճառները.
      • «Access-Control-Allow-Origin ճշգրտորեն համապատասխանում է ‹origin›-ին:» (Access-Control-Allow-Origin ճշգրտորեն համապատասխանում է ‹origin›-ին:):
      • «Access-Control-Allow-Origin-ն թույլ է տալիս ցանկացած ծագում այս հարցման համար:» (Access-Control-Allow-Origin-ն թույլ է տալիս ցանկացած ծագում այս հարցման համար:):
      • «Access-Control-Allow-Origin բացակայում է:» (Access-Control-Allow-Origin բացակայում է:):
      • «Access-Control-Allow-Origin չի կարող լինել *, երբ հավատարմագրերը ներառված են:» (Access-Control-Allow-Origin չի կարող լինել *, երբ հավատարմագրերը ներառված են:):
      • «Access-Control-Allow-Origin-ը ‹actual› է, ոչ թե ‹expected›:» (Access-Control-Allow-Origin-ը ‹actual› է, ոչ թե ‹expected›:):
      • «Access-Control-Allow-Origin ունի անվավեր արժեք՝ ‹value›:» (Access-Control-Allow-Origin ունի անվավեր արժեք՝ ‹value›:):
      • «Access-Control-Allow-Credentials ճիշտ է:» (Access-Control-Allow-Credentials ճիշտ է:):
      • «Հավատարմագրված խնդրանքին անհրաժեշտ է Access-Control-Allow-Credentials՝ ճշմարիտ:» (Հավատարմագրված խնդրանքին անհրաժեշտ է Access-Control-Allow-Credentials՝ ճշմարիտ:):
      • «Հավատարմագրերը ներառված չեն, ուստի Access-Control-Allow-Credentials-ն չի ազդում այս որոշման վրա:» (Հավատարմագրերը ներառված չեն, ուստի Access-Control-Allow-Credentials-ն չի ազդում այս որոշման վրա:):
      • «‹status› նախաթռիչքային կարգավիճակը հաջողված է:» (‹status› նախաթռիչքային կարգավիճակը հաջողված է:):
      • «Նախաթռիչքային ‹status› կարգավիճակը հաջողված 2xx կարգավիճակ չէ:» (Նախաթռիչքային ‹status› կարգավիճակը հաջողված 2xx կարգավիճակ չէ:):
      • «HTTP կարգավիճակի գիծ չի տեղադրվել, ուստի 2xx նախնական թռիչքի կարգավիճակը չի կարող ստուգվել:» (HTTP կարգավիճակի գիծ չի տեղադրվել, ուստի 2xx նախնական թռիչքի կարգավիճակը չի կարող ստուգվել:):
      • «Նախնական թռիչքը թույլ է տալիս ‹method›:» (Նախնական թռիչքը թույլ է տալիս ‹method›:):
      • «‹method›-ը CORS-ով ապահովված մեթոդ է և կարիք չունի հայտնվել Access-Control-Allow-Methods-ում:» (‹method›-ը CORS-ով ապահովված մեթոդ է և կարիք չունի հայտնվել Access-Control-Allow-Methods-ում:):
      • «Access-Control-Allow-Methods-ն թույլ չի տալիս ‹method›-ին:» (Access-Control-Allow-Methods-ն թույլ չի տալիս ‹method›-ին:):
      • «Ոչ մի պահանջված վերնագրի անվանումը նախնական թռիչքի հաստատման կարիք չունի:» (Ոչ մի պահանջված վերնագրի անվանումը նախնական թռիչքի հաստատման կարիք չունի:):
      • «Նախնական թռիչքը թույլ է տալիս պահանջվող վերնագրերի անվանումները՝ ‹headers›:» (Նախնական թռիչքը թույլ է տալիս պահանջվող վերնագրերի անվանումները՝ ‹headers›:):
      • «Access-Control-Allow-Headers. * ծածկում է այս անունները առանց հավատարմագրերի խնդրանքի. ‹headers›:» (Access-Control-Allow-Headers. * ծածկում է այս անունները առանց հավատարմագրերի խնդրանքի. ‹headers›:):
      • «Access-Control-Allow-Headers-ն թույլ չի տալիս՝ ‹headers›:» (Access-Control-Allow-Headers-ն թույլ չի տալիս՝ ‹headers›:):
      • «Authorization պետք է հստակորեն նշված լինի. Access-Control-Allow-Headers: * չի ծածկում այն:» (Authorization պետք է հստակորեն նշված լինի. Access-Control-Allow-Headers: * չի ծածկում այն:):

    Կանոններ և հատուկ դեպքեր

    CORS քաղաքականության վերլուծության ժամանակ գործում են հետևյալ կանոններն ու սահմանափակումները.

    • Երբ հարցումը ներառում է հավատարմագրեր, Access-Control-Allow-Origin-ը չի կարող լինել *: Բացի այդ, թույլատրված մեթոդների և վերնագրերի համար նախատեսված աստղանիշները (*) կորցնում են իրենց ընդհանրացնող (wildcard) նշանակությունը:
    • Եթե Access-Control-Allow-Origin-ը պարունակում է բազմակի արժեքներ կամ բաժանված է ստորակետերով, այն համարվում է անվավեր:
    • Հավատարմագրերով հարցումների դեպքում Access-Control-Allow-Credentials-ը պետք է լինի ճշգրիտ true:
    • Եթե հավատարմագրեր ներառված չեն, * նիշը կարող է օգտագործվել Access-Control-Allow-Methods և Access-Control-Allow-Headers դաշտերում, բացառությամբ Authorization վերնագրի:
    • Authorization վերնագիրը պետք է հստակորեն նշված լինի Access-Control-Allow-Headers-ում, նույնիսկ եթե առկա է Access-Control-Allow-Headers: * տողը:
    • Եթե նախնական թռիչքի (preflight) պատասխանը չի ներառում HTTP կարգավիճակի գիծ, ապա նախնական թռիչքի ստուգման արդյունքը կլինի «անորոշ» (indeterminate):

    Գործիքի սահմանափակումները և գաղտնիությունը

    Այս գործիքը միայն ստուգում է տրամադրված պատասխանի վերնագրերը և հարցման մանրամասները: Այն չի կապվում սերվերի հետ, չի կարդում URL-ներ, չի տեղադրում թխուկներ, չի ստուգում DNS/TLS և չի փոփոխում սերվերի կարգավորումները:

    Դրական արդյունքը վերաբերում է միայն տեղադրված պատասխանին և մուտքագրված տվյալներին: Այն հաշվի չի առնում վերահղումները, քեշավորված պատասխանները, սերվերի փոփոխվող կանոնները, դիտարկիչի ընդլայնումները կամ նախնական թռիչքից հետո ստացված իրական պատասխանը:

    Ձեր տվյալների գաղտնիությունը լիովին պաշտպանված է. ձեր վերնագրերը և հարցումների մանրամասները մնում են ձեր դիտարկիչում: BroBroGo-ում ոչինչ չի վերբեռնվում կամ պահվում:

    Ում է անհրաժեշտ այս գործիքը

    Այս գործիքը նախատեսված է հետևյալ մասնագետների համար.

    • Front-end ծրագրավորողներ:
    • Back-end ծրագրավորողներ:
    • API հարթակների ծրագրավորողներ:
    • Operations (շահագործման) մասնագետներ:
    • Ցանկացած ոք, ով ցանկանում է հասկանալ՝ արդյոք դիտարկիչի կոդը կարող է կարդալ կոնկրետ պատասխանը: