CORS চেকার

যেকোনো URL-এর জন্য ক্রস-অরিজিন রিসোর্স শেয়ারিং (CORS) কনফিগারেশন পরীক্ষা করুন। Access-Control-* রেসপন্স হেডার পরিদর্শন করুন, একটি কাস্টম অরিজিন/পদ্ধতি/হেডার সহ একটি ঐচ্ছিক প্রিফ্লাইট (OPTIONS) রিকোয়েস্ট চালান, এবং সাধারণ ভুল কনফিগারেশন যেমন ওয়াইল্ডকার্ড + ক্রেডেনশিয়াল, অনুপস্থিত Vary: Origin, বা অত্যধিক প্রশস্ত allow-headers সনাক্ত করুন।

Loading…

সম্পর্কে CORS চেকার

একটি API বা পৃষ্ঠার URL পেস্ট করুন এবং ব্রাউজারগুলি ক্রস-অরিজিন রিকোয়েস্ট অনুমতি দেবে কিনা তা যাচাই করুন। এই টুলটি CORS রেসপন্স হেডার বিশ্লেষণ করে, একটি বাস্তবসম্মত প্রিফ্লাইট (OPTIONS) চেক চালাতে পারে এবং ঝুঁকিপূর্ণ বা ভাঙা কনফিগারেশনগুলি হাইলাইট করে (যেমন "*" ক্রেডেনশিয়াল সহ, অনুপস্থিত Vary: Origin, বা দুর্বল allow-methods/allow-headers)।

বৈশিষ্ট্য

  • যেকোনো পাবলিক URL-এর জন্য CORS হেডার পরিদর্শন (Access-Control-* এবং সম্পর্কিত হেডার)।
  • ঐচ্ছিক প্রিফ্লাইট সিমুলেশন (OPTIONS) কাস্টম অরিজিন, রিকোয়েস্ট পদ্ধতি এবং রিকোয়েস্ট হেডার সহ।
  • রিডাইরেক্ট অনুসরণ করুন (১০টি পর্যন্ত) যাতে আপনি চূড়ান্ত এন্ডপয়েন্ট যাচাই করতে পারেন যা ব্রাউজারগুলি প্রকৃতপক্ষে আঘাত করে।
  • সম্পূর্ণ স্বচ্ছতা এবং ডিবাগিংয়ের জন্য কাঁচা হেডার ভিউ।
  • ফলাফল + স্কোর কার্ড দ্রুত ট্রায়েজের জন্য "শুধুমাত্র সমস্যা" ফিল্টারিং সহ।
  • Vary বিশ্লেষণ অনুপস্থিত Vary: Origin এবং অন্যান্য ক্যাশ-সম্পর্কিত CORS সমস্যা সনাক্ত করতে।
  • অডিট, টিকিট এবং ডকুমেন্টেশনের জন্য ফলাফল JSON এবং PDF রিপোর্ট হিসাবে রপ্তানি করুন।
  • সাধারণ সমস্যার জন্য অন্তর্নির্মিত সুপারিশ: ওয়াইল্ডকার্ড+ক্রেডেনশিয়াল, অরিজিন প্রতিফলন, নাল অরিজিন, অনুপস্থিত allow-methods/allow-headers, অনুপস্থিত max-age, এবং অত্যধিক প্রশস্ত allow-headers।

🧭 কিভাবে ব্যবহার করবেন for cors-checker

1

টার্গেট URL লিখুন

আপনি যে এন্ডপয়েন্ট পরীক্ষা করতে চান তা পেস্ট করুন (উদাহরণস্বরূপ, https://api.example.com/resource)।

2

আপনি যে অরিজিন থেকে পরীক্ষা করছেন তা সেট করুন

আপনার ফ্রন্টএন্ড অ্যাপের অরিজিন লিখুন (স্কিম + হোস্ট), উদাহরণস্বরূপ, https://app.example.com। এটি হল সেই মান যা ব্রাউজারগুলি Origin হেডারে পাঠায়।

3

একটি চেক মোড নির্বাচন করুন

রেসপন্স হেডার এবং প্রিফ্লাইট আচরণ উভয়ই বিশ্লেষণ করতে অটো (সুপারিশকৃত) ব্যবহার করুন। আপনি যদি নির্দিষ্টভাবে একটি নন-প্রিফ্লাইট দৃশ্যকল্প চান তাহলে সাধারণ রিকোয়েস্ট ব্যবহার করুন, অথবা শুধুমাত্র OPTIONS চেক চালানোর জন্য প্রিফ্লাইট শুধুমাত্র ব্যবহার করুন।

4

প্রিফ্লাইট বিবরণ কনফিগার করুন (যদি প্রযোজ্য)

"প্রিফ্লাইট চালান (OPTIONS)" সক্ষম করুন এবং রিকোয়েস্ট পদ্ধতি প্লাস রিকোয়েস্ট হেডার (কমা দ্বারা পৃথক) সেট করুন বাস্তব ব্রাউজার প্রিফ্লাইট আচরণ সিমুলেট করতে (উদাহরণস্বরূপ, অনুমোদন, কন্টেন্ট-টাইপ)। আপনার ব্যবহারের ক্ষেত্রে কুকিজ বা অথ হেডার অন্তর্ভুক্ত থাকলে "ক্রেডেনশিয়াল বিবেচনা করুন" টগল করুন।

5

ফলাফল পর্যালোচনা করুন এবং রপ্তানি করুন

ফলাফল/স্কোর কার্ড এবং CORS বিশ্লেষণ বিবরণ পরীক্ষা করুন। ডিবাগিং করার সময় "কাঁচা হেডার দেখান" চালু করুন। শেয়ারিং বা অডিটে সংরক্ষণের জন্য JSON/PDF রপ্তানি করুন।

প্রযুক্তিগত বিবরণ

রিকোয়েস্ট মডেল

টুলটি একটি টার্গেট URL-এর জন্য CORS হেডার পরিদর্শন করে এবং ঐচ্ছিকভাবে সরবরাহকৃত অরিজিন, পদ্ধতি এবং অনুরোধকৃত হেডার ব্যবহার করে একটি প্রিফ্লাইট (OPTIONS) রিকোয়েস্ট সম্পাদন করতে পারে। রিডাইরেক্ট অনুসরণ সমর্থিত।

সেটিংআচরণডিফল্ট
চেক মোডঅটো, সরল অনুরোধ, বা শুধুমাত্র প্রিফ্লাইটঅটো
প্রিফ্লাইট চালান (OPTIONS)সক্রিয় থাকলে, একটি OPTIONS প্রিফ্লাইট সিমুলেশন সম্পাদন করেসক্রিয়
অরিজিনবিশ্লেষণ/প্রিফ্লাইটের জন্য ব্যবহৃত অরিজিন হেডার মানhttps://example.com
অনুরোধ পদ্ধতিপ্রিফ্লাইটের জন্য Access-Control-Request-Method মানGET
অনুরোধ হেডারপ্রিফ্লাইটের জন্য Access-Control-Request-Headers (কমা দ্বারা পৃথকীকৃত)খালি
রিডাইরেক্ট অনুসরণ করুনচূড়ান্ত URL পর্যন্ত রিডাইরেক্ট চেইন অনুসরণ করেসক্রিয়
সর্বোচ্চ রিডাইরেক্টলুপ প্রতিরোধের জন্য রিডাইরেক্ট সীমা10 (পরিসীমা 0–20)
টাইমআউটঅনুরোধ টাইমআউট সীমা15000 ms
ব্যবহারকারী-এজেন্টঅনুরোধের ব্যবহারকারী এজেন্ট চিহ্নিত করেEncode64Bot/1.0 (+https://encode64.com)
ব্যক্তিগত নেটওয়ার্কসুরক্ষার জন্য ব্যক্তিগত নেটওয়ার্ক পরিসরে অ্যাক্সেস ব্লক করেনিষ্ক্রিয় (ব্যক্তিগত নেটওয়ার্ক অনুমোদিত নয়)

বিশ্লেষিত হেডার (কোর CORS সেট)

বিশ্লেষকটি ব্রাউজার এবং প্রিফ্লাইট চেক দ্বারা ব্যবহৃত স্ট্যান্ডার্ড CORS রেসপন্স ও অনুরোধ হেডারের উপর ফোকাস করে।

হেডারউদ্দেশ্য
Access-Control-Allow-Originকোন অরিজিন(গুলি) অনুমোদিত
Access-Control-Allow-Credentialsকুকি/ক্রেডেনশিয়াল অনুমোদিত কিনা (অ-ওয়াইল্ডকার্ড অরিজিন প্রয়োজন)
Access-Control-Allow-Methodsক্রস-অরিজিন অনুরোধের জন্য অনুমোদিত পদ্ধতি (প্রিফ্লাইটের জন্য গুরুত্বপূর্ণ)
Access-Control-Allow-Headersঅনুমোদিত হেডার (অথোরাইজেশন এবং কাস্টম হেডারের জন্য গুরুত্বপূর্ণ)
Access-Control-Expose-Headersকোন হেডারগুলি ব্রাউজার জেএস দ্বারা পড়ার যোগ্য
Access-Control-Max-Ageপ্রিফ্লাইট ব্রাউজার দ্বারা কতক্ষণ ক্যাশে রাখা যেতে পারে
Varyক্যাশে কী ভ্যারিয়েশন (যেমন, Vary: Origin) ক্যাশে পয়জনিং/মিশ্রণ রোধ করতে
Origin / Access-Control-Request-*প্রিফ্লাইট আচরণ সিমুলেট করতে ব্যবহৃত হয়

হিউরিস্টিক্স (সাধারণ CORS সমস্যা চিহ্নিত)

সন্ধানগুলি ভাঙা বা ঝুঁকিপূর্ণ CORS সেটআপ সনাক্ত করতে ব্যবহারিক এবং নিরাপত্তামুখী চেকের উপর ভিত্তি করে।

চেককেন এটি গুরুত্বপূর্ণ
ওয়াইল্ডকার্ড + ক্রেডেনশিয়ালAccess-Control-Allow-Origin: * ক্রেডেনশিয়ালের সাথে ব্যবহার করা যাবে না; ব্রাউজার ব্লক করবে বা আচরণটি নিরাপদ নয়
Vary: Origin অনুপস্থিতযদি প্রতিক্রিয়া Origin অনুযায়ী পরিবর্তিত হয় কিন্তু সঠিকভাবে ক্যাশে না করা হয়, শেয়ার্ড ক্যাশে সাইট জুড়ে প্রতিক্রিয়া মিশ্রিত করতে পারে
অরিজিন প্রতিফলনঅন্ধভাবে Origin প্রতিধ্বনি করা অনিচ্ছাকৃতভাবে অবিশ্বস্ত উত্সগুলিকে অনুমতি দিতে পারে
নাল অরিজিন সতর্কতাOrigin: null স্যান্ডবক্সড আইফ্রেম বা ফাইল প্রসঙ্গে দেখা দিতে পারে; এটি অনুমতি দেওয়া প্রায়শই ঝুঁকিপূর্ণ
Allow-Methods / Allow-Headers অনুপস্থিতসার্ভার স্পষ্টভাবে পদ্ধতি/হেডার অনুমতি না দিলে প্রিফ্লাইট ব্যর্থ হতে পারে
অত্যধিক Allow-Headersঅনেক হেডার অনুমতি দেওয়া আক্রমণের পরিধি বাড়াতে পারে
Max-Age অনুপস্থিতপ্রিফ্লাইট খুব ঘন ঘন চলতে পারে, লেটেন্সি যোগ করে
CORS একটি ব্রাউজার প্রয়োগ প্রক্রিয়া। সার্ভারগুলি এখনও নন-ব্রাউজার ক্লায়েন্টের মাধ্যমে ক্রস-অরিজিনে পৌঁছানো যেতে পারে; CORS কে একটি বিস্তৃত নিরাপত্তা কাঠামোর অংশ হিসাবে বিবেচনা করুন, একমাত্র নিয়ন্ত্রণ নয়।

কমান্ড লাইন

আপনার টার্মিনাল থেকে CORS এবং প্রিফ্লাইট আচরণ পুনরুত্পাদন করতে এই কমান্ডগুলি ব্যবহার করুন। ডিবাগিং এবং টুলটি যা রিপোর্ট করে তা যাচাই করতে এগুলি সহায়ক।

macOS / Linux

একটি সাধারণ অনুরোধের জন্য CORS হেডার চেক করুন (একটি ব্রাউজার Origin সিমুলেট করুন)

curl -i -H "Origin: https://example.com" https://api.example.com/resource

Access-Control-Allow-Origin, Access-Control-Allow-Credentials, এবং Vary এর জন্য দেখুন।

একটি প্রিফ্লাইট OPTIONS অনুরোধ চালান (পদ্ধতি + হেডার)

curl -i -X OPTIONS -H "Origin: https://app.example.com" -H "Access-Control-Request-Method: POST" -H "Access-Control-Request-Headers: authorization, content-type" https://api.example.com/private

প্রিফ্লাইট অবশ্যই ব্রাউজারকে এগিয়ে যাওয়ার জন্য সঠিক Access-Control-Allow-Methods এবং Access-Control-Allow-Headers ফেরত দিতে হবে।

হেডার চেক করার সময় রিডাইরেক্ট অনুসরণ করুন

curl -iL -H "Origin: https://example.com" https://api.example.com

যখন এন্ডপয়েন্টগুলি একটি ভিন্ন হোস্টে রিডাইরেক্ট করে যার ভিন্ন CORS নিয়ম রয়েছে তখন এটি কার্যকর।

উইন্ডোজ (পাওয়ারশেল)

একটি অরিজিন হেডার সহ রেসপন্স হেডার পরিদর্শন করুন

$r = Invoke-WebRequest -Uri https://api.example.com/resource -Headers @{ Origin = "https://example.com" }; $r.Headers

Access-Control-* হেডারগুলি প্রদর্শন করে যদি সেগুলি উপস্থিত থাকে।

যদি আপনার ফ্রন্টএন্ড কুকিজ বা অথ ব্যবহার করে, তবে অনুমতিমূলক CORS এড়িয়ে চলুন। বিশ্বস্ত অরিজিনের একটি স্পষ্ট অ্যালাউলিস্ট পছন্দ করুন এবং যখন রেসপন্স অরিজিন অনুসারে ভিন্ন হয় তখন Vary: Origin অন্তর্ভুক্ত করুন।

ব্যবহারের ক্ষেত্র

একটি ফ্রন্টএন্ড "CORS ব্লক করা" ব্রাউজার ত্রুটি ডিবাগ করুন

যখন fetch/XHR একটি CORS ত্রুটি দিয়ে ব্যর্থ হয়, তখন সার্ভার আপনার অরিজিন এবং অনুরোধের ধরনের জন্য প্রয়োজনীয় Access-Control-* হেডার ফেরত দেয় কিনা তা যাচাই করুন।

  • নিশ্চিত করুন Access-Control-Allow-Origin আপনার অ্যাপ অরিজিনের সাথে মেলে
  • যদি কুকিজ/অথ ব্যবহার করেন, তবে পরীক্ষা করুন Access-Control-Allow-Credentials সত্য (এবং অরিজিন ওয়াইল্ডকার্ড নয়)
  • নিশ্চিত করুন Vary: Origin উপস্থিত থাকে যখন একাধিক অরিজিন অনুমতি দেওয়া হয়

অথরাইজেশন / কাস্টম হেডারের জন্য প্রিফ্লাইট বৈধতা যাচাই করুন

অধিকাংশ প্রমাণীকৃত API কল অথরাইজেশন বা নন-সিম্পল কন্টেন্ট টাইপের কারণে প্রিফ্লাইট ট্রিগার করে। এই টুলটি নিশ্চিত করতে সাহায্য করে যে OPTIONS রেসপন্স প্রয়োজনীয় পদ্ধতি এবং হেডার অনুমোদন করে।

  • যাচাই করুন Access-Control-Allow-Methods প্রয়োজন অনুযায়ী POST/PUT/PATCH/DELETE অন্তর্ভুক্ত করে
  • যাচাই করুন Access-Control-Allow-Headers authorization, content-type, এবং প্রয়োজনীয় X-* হেডার অন্তর্ভুক্ত করে
  • ডেপ্লয় করার আগে অনুপস্থিত allow-methods/allow-headers ধরুন

CORS নীতির নিরাপত্তা পর্যালোচনা

CORS ভুল কনফিগারেশনগুলি অনিচ্ছাকৃতভাবে ব্যক্তিগত API গুলোকে ক্ষতিকর সাইটগুলোর কাছে প্রকাশ করতে পারে (বিশেষত ক্রেডেনশিয়াল সহ)। উচ্চ-ঝুঁকির প্যাটার্ন ধরতে ফলাফলগুলি ব্যবহার করুন।

  • ক্রেডেনশিয়ালের সাথে সংযুক্ত ওয়াইল্ডকার্ড অরিজিন সনাক্ত করুন
  • যে অরিজিন প্যাটার্নগুলি নির্বিচারে সাইট অনুমতি দেয় তা সনাক্ত করুন
  • যখন উদ্দেশ্য নয় তখন Origin: null অনুমতি দেওয়া চিহ্নিত করুন

প্রিফ্লাইট ক্যাশিং করে কর্মক্ষমতা উন্নত করুন

প্রিফ্লাইট অনুরোধ রাউন্ড-ট্রিপ এবং লেটেন্সি যোগ করে। সঠিক Max-Age স্থিতিশীল API গুলোর জন্য পুনরাবৃত্ত প্রিফ্লাইট চেক কমাতে পারে।

  • যাচাই করুন Access-Control-Max-Age উপযুক্ত হলে উপস্থিত আছে
  • ঘন ঘন API ট্রাফিকের জন্য পুনরাবৃত্ত OPTIONS কল কমান

❓ Frequently Asked Questions

সহজ ভাষায় CORS কি?

CORS (ক্রস-অরিজিন রিসোর্স শেয়ারিং) হল একটি ব্রাউজার নিরাপত্তা প্রক্রিয়া যা নিয়ন্ত্রণ করে যে একটি উৎস (স্কিম + হোস্ট + পোর্ট) থেকে একটি ওয়েবপৃষ্ঠা অন্য উৎস থেকে রেসপন্স পড়তে পারে কিনা। এটি নির্দিষ্ট Access-Control-* রেসপন্স হেডারের উপর নির্ভর করে।

ব্রাউজার কখন একটি প্রিফ্লাইট (OPTIONS) অনুরোধ পাঠায়?

একটি প্রিফ্লাইট পাঠানো হয় যখন অনুরোধটি "সিম্পল" নয়, উদাহরণস্বরূপ যখন নির্দিষ্ট কন্টেন্ট টাইপ বা অথরাইজেশন বা কাস্টম X-* হেডারের মতো হেডার পাঠানোর সময় POST এর মতো পদ্ধতি ব্যবহার করা হয়। ব্রাউজার প্রকৃত অনুরোধ পাঠানোর আগে OPTIONS এর মাধ্যমে অনুমতি পরীক্ষা করে।

কেন "Access-Control-Allow-Origin: *" ক্রেডেনশিয়াল সহ বিপজ্জনক?

ক্রেডেনশিয়াল জড়িত থাকলে ব্রাউজারগুলোর একটি স্পষ্ট অরিজিন প্রয়োজন। ক্রেডেনশিয়াল সহ ওয়াইল্ডকার্ড ব্যবহার ক্রেডেনশিয়ালযুক্ত অনুরোধের জন্য অবৈধ এবং একটি ঝুঁকিপূর্ণ কনফিগারেশন নির্দেশ করে। বিশ্বস্ত অরিজিনের একটি স্পষ্ট অ্যালাউলিস্ট পছন্দ করুন।

আমার Vary: Origin প্রয়োজন কেন?

যদি আপনার সার্ভার অনুরোধ অরিজিনের উপর নির্ভর করে ভিন্ন Access-Control-Allow-Origin মান ফেরত দেয়, তাহলে ক্যাশগুলিকে অরিজিন অনুসারে পরিবর্তিত হতে হবে যাতে একটি সাইটের জন্য উদ্দিষ্ট রেসপন্স অন্য সাইটে পরিবেশন করা এড়ানো যায়। Vary: Origin ক্যাশ মিশ্রণ এবং সম্পর্কিত নিরাপত্তা সমস্যা প্রতিরোধে সাহায্য করে।

CORS কি আমার API কে নন-ব্রাউজার ক্লায়েন্ট থেকে রক্ষা করতে পারে?

না। CORS ব্রাউজার দ্বারা প্রয়োগ করা হয়। ব্রাউজারের বাইরে চলা স্ক্রিপ্ট (সার্ভার, curl, মোবাইল অ্যাপ) CORS নির্বিশেষে আপনার API কল করতে পারে। প্রকৃত অ্যাক্সেস নিয়ন্ত্রণের জন্য প্রমাণীকরণ, অনুমোদন এবং রেট লিমিটিং ব্যবহার করুন।

প্রিফ্লাইট টেস্ট করার সময় "Request Headers"-এ কী রাখা উচিত?

আপনার ফ্রন্টএন্ড যে হেডার পাঠাবে তা কমা দ্বারা পৃথক করে তালিকাভুক্ত করুন (যেমন, authorization, content-type, x-request-id)। এটি Access-Control-Request-Headers সিমুলেট করে এবং সার্ভার সেগুলি অনুমোদন করে কিনা তা পরীক্ষা করে।

এখানে URL পেস্ট করা কি নিরাপদ?

টুলটি প্রদত্ত URL-এ সার্ভার-সাইড রিকোয়েস্ট করে এবং প্রাইভেট-নেটওয়ার্ক টার্গেট ব্লক করে। URL-এ গোপন তথ্য (যেমন কোয়েরি স্ট্রিং-এ টোকেন) অন্তর্ভুক্ত করা এড়িয়ে চলুন এবং আপনি বিশ্বাস করেন এমন পাবলিক এন্ডপয়েন্ট ব্যবহার করতে পছন্দ করুন।

Pro Tips

Security Tip

যেকোন Origin প্রতিফলিত করার পরিবর্তে বিশ্বস্ত উৎসের একটি allowlist পছন্দ করুন। CORS কে নিরাপত্তা-সংবেদনশীল কনফিগ হিসেবে বিবেচনা করুন।

Security Tip

আপনি যদি কুকি/প্রমাণীকরণ ব্যবহার করেন, Access-Control-Allow-Credentials: true সেট করুন এবং একটি স্পষ্ট উৎস ("*" নয়) ফেরত দিন।

Security Tip

একাধিক উৎস অনুমোদন করার সময় বা অনুমোদিত উৎস গতিশীলভাবে নির্বাচন করার সময় Vary: Origin যোগ করুন।

Performance Tip

স্থিতিশীল API-এর জন্য প্রিফ্লাইট লেটেন্সি কমাতে একটি যুক্তিসঙ্গত Access-Control-Max-Age যোগ করুন।

Best Practice

প্রিফ্লাইট এবং প্রকৃত রিকোয়েস্ট পথ উভয়ই পরীক্ষা করুন; কিছু সেটআপ GET-এর জন্য সঠিক হেডার ফেরত দেয় কিন্তু OPTIONS-এ ব্যর্থ হয়।

CI Tip

JSON রিপোর্ট এক্সপোর্ট করুন এবং API গেটওয়ে কনফিগ পরিবর্তনের পাশাপাশি সেগুলি রাখুন যাতে দ্রুত রিগ্রেশন শনাক্ত করা যায়।

Additional Resources

Other Tools

CORS চেকার — Access-Control-* হেডার এবং প্রিফ্লাইট (OPTIONS) পরীক্ষা করুন | Encode64