এক্স-রিকোয়েস্টড-উইথ শিরোনামটির বিন্দুটি কী?


224

JQuery এবং অন্যান্য ফ্রেমওয়ার্কগুলি নিম্নলিখিত শিরোনাম যুক্ত করে:

এক্স-রিকুয়েস্টড-উইথ: এক্সএমএলএইচটিপিআরকোয়েস্ট

কেন এটি প্রয়োজন? কেন কোনও সার্ভার এজেএক্স অনুরোধগুলি সাধারণ অনুরোধের চেয়ে আলাদাভাবে আচরণ করতে চায়?

আপডেট : আমি সবেমাত্র এই শিরোনামটি ব্যবহার করে একটি বাস্তব জীবনের উদাহরণ পেয়েছি: https://core.spreedly.com/manual/payment-methods/adding-with-js । যদি পেজ প্রসেসরটিকে এজেএক্স ছাড়াই অনুরোধ করা হয়, এটি হয়ে গেলে এটি মূল ওয়েবসাইটটিতে পুনঃনির্দেশ করে। যখন এজেএক্সের সাথে অনুরোধ করা হয়, কোনও পুনর্নির্দেশ করা হয় না।


7
"[যখন] এজেএক্স ব্যতীত অনুরোধ করা হয়েছিল, এটি হয়ে গেলে এটি মূল ওয়েবসাইটটিতে পুনঃনির্দেশ করে A এটি যখন এজেএক্সের সাথে অনুরোধ করা হয়, কোনও পুনর্নির্দেশ হয় না।" -> এজন্যই আপনি এটি করতে চাইবেন। :)
রবার্ট ক্রিশ্চান

উত্তর:


257

সুরক্ষার জন্য একটি ভাল কারণ - এটি সিএসআরএফ আক্রমণগুলি রোধ করতে পারে কারণ এই শিরোনামটি সিওআরএসের মাধ্যমে সার্ভারের সম্মতি ছাড়াই এজ্যাক্স অনুরোধ ক্রস ডোমেনে যুক্ত করা যাবে না ।

কেবলমাত্র নিম্নলিখিত শিরোনামগুলিকে ক্রস ডোমেনের অনুমতি দেওয়া হয়েছে:

  • গ্রহণ করা
  • স্বীকার করুন ভাষার
  • বিষয়বস্তু-ভাষা
  • শেষ ইভেন্ট-আইডি
  • বিষয়বস্তুর প্রকার

অন্য যে কোনও কারণে সিওআরএস সমর্থিত ব্রাউজারগুলিতে "প্রাক-বিমান" অনুরোধ জারি করা হয়েছে।

সিওআরএস ব্যতীত X-Requested-Withক্রস ডোমেন এক্সএইচআর অনুরোধে যুক্ত করা সম্ভব নয় ।

যদি সার্ভারটি এই শিরোনামটি উপস্থিত রয়েছে কিনা তা খতিয়ে দেখছে তবে এটি জানে যে জাভাস্ক্রিপ্টের মাধ্যমে ব্যবহারকারীর পক্ষে অনুরোধ করার চেষ্টা করা আক্রমণকারীর ডোমেন থেকে অনুরোধটি আরম্ভ করা হয়নি। এটিও পরীক্ষা করে তোলে যে অনুরোধটি কোনও নিয়মিত এইচএমএল ফর্ম থেকে পোস্ট করা হয়নি, যার মধ্যে এটি টোকেনের ব্যবহার ছাড়াই ক্রস ডোমেন নয় তা যাচাই করা আরও শক্ত। (তবে, সমর্থিত ব্রাউজারগুলিতে শিরোনামটি পরীক্ষাOrigin করা একটি বিকল্প হতে পারে, যদিও আপনি পুরানো ব্রাউজারগুলিকে দুর্বল করে রাখবেন ))

নতুন ফ্ল্যাশ বাইপাস আবিষ্কার হয়েছে

আপনি এটি একটি টোকেনের সাথে একত্রিত করতে ইচ্ছুক হতে পারেন , কারণ ওএসএক্সের সাফারিতে ফ্ল্যাশ চলমান যদি কোনও পুনর্নির্দেশ পদক্ষেপ থাকে তবে এই শিরোনামটি সেট করতে পারে । এটি ক্রোমেও কাজ করেছে বলে মনে হয় , তবে এখন প্রতিকার করা হয়েছে। প্রভাবিত বিভিন্ন সংস্করণ সহ এখানে আরও বিশদ

OWASP এটিকে একটি উত্স এবং রেফারার চেকের সাথে একত্রিত করার প্রস্তাব দেয় :

এই প্রতিরক্ষা কৌশলটি ক্রস-সাইট অনুরোধ জালিয়াতির জন্য দৃust় প্রতিরক্ষা বিভাগের ৪.৩ বিভাগে বিশেষভাবে আলোচনা করা হয়েছে। যাইহোক, ফ্ল্যাশ ব্যবহার করে এই প্রতিরক্ষা বাইপাসগুলি ২০০৮ সালের প্রথম দিকে এবং আবারও 2015 এর মতো ম্যাথিয়াস কার্লসন ভিমেওতে সিএসআরএফ ত্রুটি কাজে লাগানোর জন্য নথিভুক্ত করেছিল। তবে, আমরা বিশ্বাস করি যে ফ্ল্যাশ আক্রমণটি মূল বা রেফারার শিরোনামগুলিকে ফাঁকি দিতে পারে না তাই উভয়কেই যাচাই করে আমরা বিশ্বাস করি যে এই চেকগুলির সংমিশ্রণটি ফ্ল্যাশ বাইপাস সিএসআরএফ আক্রমণগুলি রোধ করা উচিত। (দ্রষ্টব্য: যদি কেউ এই বিশ্বাসের সত্যতা বা খণ্ডন করতে পারে তবে দয়া করে আমাদের জানান যাতে আমরা এই নিবন্ধটি আপডেট করতে পারি)

তবে ইতিমধ্যে আলোচিত কারণগুলির জন্য অরিজিন পরীক্ষা করা জটিল হতে পারে।

হালনাগাদ

সিওআরএস, সিএসআরএফ এবং এক্স-অনুরোধ-সহ এখানে আরও গভীরতার ব্লগ পোস্ট লিখেছেন ।


14
আমি পাই না। কীভাবে আক্রমণকারীকে অনুরোধ তৈরি করতে এবং X-Requested-Withপাশাপাশি একটি শিরোনাম সংযোজন করতে বাধা দেয় ?
গ্রেগ

13
@ গ্রেগ: ব্রাউজার - এটি ক্রস-ডোমেনকে অনুমতি দেবে না।
সিলভারলাইটফক্স

2
ওহ, আমি বুঝতে পারি না যে আপনি একই ডোমেনে রয়েছেন ততক্ষণ কোনও সিওআরএস কনফিগারেশন লাগবে না। এটা স্পষ্ট যদিও আপনি এটি সম্পর্কে চিন্তা যখন। ধন্যবাদ!
গ্রেগ

10
@ ভোলআরন: কিছুই তাদের থামায় না, তবে তাদের অনুরোধে তাদের ভুক্তভোগীর কুকিজ থাকবে না যা অনুরোধ করার কারণে তাদের উদ্দেশ্যকে পরাস্ত করে। কোনও সিএসআরএফ সফল হওয়ার জন্য, আক্রমণকারীর অনুরোধের সাথে স্বয়ংক্রিয়ভাবে কুকিজ সংযুক্ত করার জন্য ব্রাউজারের প্রয়োজন হবে, সুতরাং ব্রাউজার ছাড়া কোনও সিএসআরএফ আক্রমণ নেই।
সিলভারলাইটফক্স

3
@ ভোলআরন: প্রাক্তন সিএসআরএফ একটি বিভ্রান্ত ডেপুটি সমস্যা। ব্রাউজারটি বিভ্রান্ত ডেপুটি এবং ব্যবহারকারী তাদের তৈরি না করে এমন একটি অনুরোধের জন্য কুকিজ প্রেরণের জন্য "ছলনা" করা হয়।
সিলভারলাইটফক্স

25

আপনি সিলভারলাইটফক্সের উত্তরটি পড়েছেন তা নিশ্চিত করুন। এটি আরও একটি গুরুত্বপূর্ণ কারণ হাইলাইট করে।

বেশিরভাগ কারণ হ'ল আপনি যদি কোনও অনুরোধের উত্স জানেন তবে আপনি এটি কিছুটা কাস্টমাইজ করতে পারেন।

উদাহরণস্বরূপ বলতে দিন যে আপনার কাছে এমন একটি ওয়েবসাইট রয়েছে যার অনেকগুলি রেসিপি রয়েছে। এবং আপনি যে লিঙ্কটিতে ক্লিক করেন তার উপর ভিত্তি করে একটি পাত্রে রেসিপিগুলি স্লাইড করতে একটি কাস্টম jQuery ফ্রেমওয়ার্ক ব্যবহার করেন। লিঙ্কটি হতে পারেwww.example.com/recipe/apple_pie

এখন সাধারণত এটি একটি পূর্ণ পৃষ্ঠা, শিরোনাম, পাদচরণ, রেসিপি সামগ্রী এবং বিজ্ঞাপন দেয় returns তবে কেউ যদি আপনার ওয়েবসাইটটি ব্রাউজ করছেন তবে সেগুলির কিছু অংশ ইতিমধ্যে লোড হয়েছে। সুতরাং আপনি ব্যবহারকারী একটি রেসিপি পেতে বাছাই করতে একটি এজ্যাক্স ব্যবহার করতে পারেন তবে সময় এবং ব্যান্ডউইথের জন্য হেডার / পাদচরণ / বিজ্ঞাপনগুলি লোড করবেন না।

এখন আপনি কেবল ডেটার জন্য একটি গৌণ শেষ পয়েন্ট লিখতে পারেন www.example.com/recipe_only/apple_pieতবে এটি বজায় রাখা এবং অন্য ব্যক্তির সাথে ভাগ করা আরও শক্ত।

তবে এটি সহজেই সনাক্ত করা সহজ যে এটি একটি এজ্যাক্স অনুরোধ এবং তারপরে কেবলমাত্র ডেটার একটি অংশ ফিরে আসে। এইভাবে ব্যবহারকারী কম ব্যান্ডউইদথ নষ্ট করে এবং সাইটটি আরও প্রতিক্রিয়াশীল বলে মনে হয়।

ফ্রেমওয়ার্কগুলি কেবল শিরোনাম যুক্ত করে কারণ কারও কাছে যে অনুরোধগুলি আজাক্স এবং কোনটি নয় তা ট্র্যাক করে রাখতে কিছুকে এটি কার্যকর হতে পারে। তবে এই জাতীয় কৌশলগুলি ব্যবহার করতে এটি সম্পূর্ণরূপে বিকাশকারীদের উপর নির্ভর করে।

এটি আসলে এক ধরণের Accept-Languageশিরোনামের মতো। কোনও ব্রাউজার কোনও ওয়েবসাইটের জন্য অনুরোধ করতে পারে দয়া করে ইউআরএল / রু / বা সন্নিবেশ না করে দয়া করে আমাকে এই ওয়েবসাইটটির একটি রাশিয়ান সংস্করণ দেখান।


30
বাহ, এটি ভয়াবহ রক্ষণাবেক্ষণের দুঃস্বপ্নের মতো শোনাচ্ছে। আপনি যদি একই পৃষ্ঠার ভিন্ন উপস্থাপনাটি ফিরিয়ে দিতে চান তবে আপনার Acceptশিরোনামে একটি ভিন্ন সামগ্রী-প্রকার সরবরাহ করা উচিত । এই শোনার জন্য একটি কাস্টম শিরোলেখ ব্যবহার করা ভুল পথে যাওয়ার মতো।
গিলি

10

কিছু ফ্রেমওয়ার্কগুলি এক্সএইচআর অনুরোধগুলি সনাক্ত করার জন্য এই শিরোলেখ ব্যবহার করছে যেমন গ্রেস স্প্রিং সিকিউরিটি এই শিরোনামটি এক্সএইচআর অনুরোধ সনাক্ত করতে এবং কোনও জসন প্রতিক্রিয়া বা প্রতিক্রিয়া হিসাবে এইচটিএমএল প্রতিক্রিয়া দেওয়ার জন্য ব্যবহার করছে।

বেশিরভাগ অ্যাজাক্স লাইব্রেরিতে (প্রোটোটাইপ, জিকুয়ারি, এবং ডোজো ভি -২.১ হিসাবে) একটি এক্স-রিকুয়েস্টড-উইথ শিরোলেখ অন্তর্ভুক্ত করে যা নির্দেশ করে যে একটি নিয়মিত হাইপারলিংক বা ফর্ম জমা বোতামটি ক্লিক করে অনুরোধটি ট্রিগার হওয়ার পরিবর্তে এক্সএমএলএইচটিপিআরকুয়েস্ট দ্বারা অনুরোধ করা হয়েছিল।

সূত্র: http://grails-plugins.github.io/grails-spring-security-core/guide/helperClasses.html

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.