CORS চেকার
যেকোনো URL-এর জন্য ক্রস-অরিজিন রিসোর্স শেয়ারিং (CORS) কনফিগারেশন পরীক্ষা করুন। Access-Control-* রেসপন্স হেডার পরিদর্শন করুন, একটি কাস্টম অরিজিন/পদ্ধতি/হেডার সহ একটি ঐচ্ছিক প্রিফ্লাইট (OPTIONS) রিকোয়েস্ট চালান, এবং সাধারণ ভুল কনফিগারেশন যেমন ওয়াইল্ডকার্ড + ক্রেডেনশিয়াল, অনুপস্থিত Vary: Origin, বা অত্যধিক প্রশস্ত allow-headers সনাক্ত করুন।
বৈশিষ্ট্য
- যেকোনো পাবলিক URL-এর জন্য CORS হেডার পরিদর্শন (Access-Control-* এবং সম্পর্কিত হেডার)।
- ঐচ্ছিক প্রিফ্লাইট সিমুলেশন (OPTIONS) কাস্টম অরিজিন, রিকোয়েস্ট পদ্ধতি এবং রিকোয়েস্ট হেডার সহ।
- রিডাইরেক্ট অনুসরণ করুন (১০টি পর্যন্ত) যাতে আপনি চূড়ান্ত এন্ডপয়েন্ট যাচাই করতে পারেন যা ব্রাউজারগুলি প্রকৃতপক্ষে আঘাত করে।
- সম্পূর্ণ স্বচ্ছতা এবং ডিবাগিংয়ের জন্য কাঁচা হেডার ভিউ।
- ফলাফল + স্কোর কার্ড দ্রুত ট্রায়েজের জন্য "শুধুমাত্র সমস্যা" ফিল্টারিং সহ।
- Vary বিশ্লেষণ অনুপস্থিত Vary: Origin এবং অন্যান্য ক্যাশ-সম্পর্কিত CORS সমস্যা সনাক্ত করতে।
- অডিট, টিকিট এবং ডকুমেন্টেশনের জন্য ফলাফল JSON এবং PDF রিপোর্ট হিসাবে রপ্তানি করুন।
- সাধারণ সমস্যার জন্য অন্তর্নির্মিত সুপারিশ: ওয়াইল্ডকার্ড+ক্রেডেনশিয়াল, অরিজিন প্রতিফলন, নাল অরিজিন, অনুপস্থিত allow-methods/allow-headers, অনুপস্থিত max-age, এবং অত্যধিক প্রশস্ত allow-headers।
🧭 কিভাবে ব্যবহার করবেন for cors-checker
টার্গেট URL লিখুন
আপনি যে এন্ডপয়েন্ট পরীক্ষা করতে চান তা পেস্ট করুন (উদাহরণস্বরূপ, https://api.example.com/resource)।
আপনি যে অরিজিন থেকে পরীক্ষা করছেন তা সেট করুন
আপনার ফ্রন্টএন্ড অ্যাপের অরিজিন লিখুন (স্কিম + হোস্ট), উদাহরণস্বরূপ, https://app.example.com। এটি হল সেই মান যা ব্রাউজারগুলি Origin হেডারে পাঠায়।
একটি চেক মোড নির্বাচন করুন
রেসপন্স হেডার এবং প্রিফ্লাইট আচরণ উভয়ই বিশ্লেষণ করতে অটো (সুপারিশকৃত) ব্যবহার করুন। আপনি যদি নির্দিষ্টভাবে একটি নন-প্রিফ্লাইট দৃশ্যকল্প চান তাহলে সাধারণ রিকোয়েস্ট ব্যবহার করুন, অথবা শুধুমাত্র OPTIONS চেক চালানোর জন্য প্রিফ্লাইট শুধুমাত্র ব্যবহার করুন।
প্রিফ্লাইট বিবরণ কনফিগার করুন (যদি প্রযোজ্য)
"প্রিফ্লাইট চালান (OPTIONS)" সক্ষম করুন এবং রিকোয়েস্ট পদ্ধতি প্লাস রিকোয়েস্ট হেডার (কমা দ্বারা পৃথক) সেট করুন বাস্তব ব্রাউজার প্রিফ্লাইট আচরণ সিমুলেট করতে (উদাহরণস্বরূপ, অনুমোদন, কন্টেন্ট-টাইপ)। আপনার ব্যবহারের ক্ষেত্রে কুকিজ বা অথ হেডার অন্তর্ভুক্ত থাকলে "ক্রেডেনশিয়াল বিবেচনা করুন" টগল করুন।
ফলাফল পর্যালোচনা করুন এবং রপ্তানি করুন
ফলাফল/স্কোর কার্ড এবং 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 এবং প্রিফ্লাইট আচরণ পুনরুত্পাদন করতে এই কমান্ডগুলি ব্যবহার করুন। ডিবাগিং এবং টুলটি যা রিপোর্ট করে তা যাচাই করতে এগুলি সহায়ক।
macOS / Linux
একটি সাধারণ অনুরোধের জন্য CORS হেডার চেক করুন (একটি ব্রাউজার Origin সিমুলেট করুন)
curl -i -H "Origin: https://example.com" https://api.example.com/resourceAccess-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.HeadersAccess-Control-* হেডারগুলি প্রদর্শন করে যদি সেগুলি উপস্থিত থাকে।
ব্যবহারের ক্ষেত্র
একটি ফ্রন্টএন্ড "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) অনুরোধ পাঠায়?
❓কেন "Access-Control-Allow-Origin: *" ক্রেডেনশিয়াল সহ বিপজ্জনক?
❓আমার Vary: Origin প্রয়োজন কেন?
❓CORS কি আমার API কে নন-ব্রাউজার ক্লায়েন্ট থেকে রক্ষা করতে পারে?
CORS ব্রাউজার দ্বারা প্রয়োগ করা হয়। ব্রাউজারের বাইরে চলা স্ক্রিপ্ট (সার্ভার, curl, মোবাইল অ্যাপ) CORS নির্বিশেষে আপনার API কল করতে পারে। প্রকৃত অ্যাক্সেস নিয়ন্ত্রণের জন্য প্রমাণীকরণ, অনুমোদন এবং রেট লিমিটিং ব্যবহার করুন।❓প্রিফ্লাইট টেস্ট করার সময় "Request Headers"-এ কী রাখা উচিত?
❓এখানে URL পেস্ট করা কি নিরাপদ?
Pro Tips
যেকোন Origin প্রতিফলিত করার পরিবর্তে বিশ্বস্ত উৎসের একটি allowlist পছন্দ করুন। CORS কে নিরাপত্তা-সংবেদনশীল কনফিগ হিসেবে বিবেচনা করুন।
আপনি যদি কুকি/প্রমাণীকরণ ব্যবহার করেন, Access-Control-Allow-Credentials: true সেট করুন এবং একটি স্পষ্ট উৎস ("*" নয়) ফেরত দিন।
একাধিক উৎস অনুমোদন করার সময় বা অনুমোদিত উৎস গতিশীলভাবে নির্বাচন করার সময় Vary: Origin যোগ করুন।
স্থিতিশীল API-এর জন্য প্রিফ্লাইট লেটেন্সি কমাতে একটি যুক্তিসঙ্গত Access-Control-Max-Age যোগ করুন।
প্রিফ্লাইট এবং প্রকৃত রিকোয়েস্ট পথ উভয়ই পরীক্ষা করুন; কিছু সেটআপ GET-এর জন্য সঠিক হেডার ফেরত দেয় কিন্তু OPTIONS-এ ব্যর্থ হয়।
JSON রিপোর্ট এক্সপোর্ট করুন এবং API গেটওয়ে কনফিগ পরিবর্তনের পাশাপাশি সেগুলি রাখুন যাতে দ্রুত রিগ্রেশন শনাক্ত করা যায়।
Additional Resources
Other Tools
- সিএসএস সৌন্দর্যবর্ধক
- এইচটিএমএল সৌন্দর্যবর্ধক
- জাভাস্ক্রিপ্ট সৌন্দর্যবর্ধক
- পিএইচপি সৌন্দর্যবর্ধক
- রং নির্বাচক
- স্প্রাইট এক্সট্র্যাক্টর
- বেস৩২ বাইনারি এনকোডার
- বেস৩২ ডিকোডার
- বেস৩২ এনকোডার
- বেস৫৮ বাইনারি এনকোডার
- বেস৫৮ ডিকোডার
- বেস৫৮ এনকোডার
- বেস৬২ বাইনারি এনকোডার
- বেস৬২ ডিকোডার
- বেস৬২ এনকোডার
- বেস৬৪ বাইনারি এনকোডার
- বেস৬৪ ডিকোডার
- বেস৬৪ এনকোডার
- হেক্স বাইনারি এনকোডার
- হেক্স ডিকোডার
- হেক্স এনকোডার
- সি-শার্প ফরম্যাটার
- সিএসভি ফরম্যাটার
- Dockerfile Formatter
- এলম ফরম্যাটার
- ইএনভি ফরম্যাটার
- গো ফরম্যাটার
- গ্রাফকিউএল ফরম্যাটার
- এইচসিএল ফরম্যাটার
- আইএনআই ফরম্যাটার
- জেসন ফরম্যাটার
- ল্যাটেক ফরম্যাটার
- মার্কডাউন ফরম্যাটার
- অবজেক্টিভসি ফরম্যাটার
- Php Formatter
- প্রোটো ফরম্যাটার
- পাইথন ফরম্যাটার
- রুবি ফরম্যাটার
- রাস্ট ফরম্যাটার
- স্কালা ফরম্যাটার
- শেল স্ক্রিপ্ট ফরম্যাটার
- এসকিউএল ফরম্যাটার
- SVG ফরম্যাটার
- Swift ফরম্যাটার
- TOML ফরম্যাটার
- Typescript Formatter
- XML ফরম্যাটার
- YAML ফরম্যাটার
- Yarn ফরম্যাটার
- সিএসএস মিনিফায়ার
- Html Minifier
- Javascript Minifier
- জেসন মিনিফায়ার
- XML মিনিফায়ার
- Cache Headers Analyzer
- Csp Analyzer
- Dns Records Lookup
- এইচটিটিপি হেডার ভিউয়ার
- Http Status Checker
- Open Graph Meta Checker
- Redirect Chain Viewer
- Robots Txt Tester
- Security Headers Checker
- Security Txt Checker
- Sitemap Url Inspector
- Tls Certificate Checker
- পিডিএফ থেকে টেক্সট
- রেজেক্স টেস্টার
- সার্প র্যাংক চেকার
- Whois লুকআপ