কীভাবে ওয়েব সার্ভারগুলি একই-উত্স নীতি প্রয়োগ করে?


24

আমি RESTful API গুলি বিকাশের জন্য আরও গভীরভাবে ডাইভিং করছি এবং এটি অর্জনের জন্য এ পর্যন্ত কয়েকটি ভিন্ন ফ্রেমওয়ার্কের সাথে কাজ করেছি। অবশ্যই আমি একই-উত্স নীতিতে চলে এসেছি এবং এখন আমি ভাবছি যে কীভাবে ওয়েব সার্ভারগুলি (ওয়েব ব্রাউজারগুলির চেয়ে) এটি প্রয়োগ করে। আমি যা বুঝি সেগুলি থেকে ব্রাউজারের শেষের দিকে কিছু বলবৎসাহী ঘটেছিল (যেমন, কোনও সার্ভার থেকে প্রাপ্ত অ্যাক্সেস-কন্ট্রোল-মঞ্জুরি-উত্স শিরোনামকে সম্মান করা)। তবে সার্ভারের কী হবে?

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

বা ক্রস-আদি নীতি কেবল ক্লায়েন্টের শেষের জন্য প্রয়োগ করা হয়?


সত্যিই একটি দুর্দান্ত প্রশ্ন
বেনি

উত্তর:


46

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

মনে করুন আমি এমন একটি প্রোগ্রাম লিখেছি যা আপনার ওয়েব পরিষেবা অ্যাক্সেস করে। এটি কেবলমাত্র একটি প্রোগ্রাম যা এইচটিটিপি অনুরোধগুলি অন্তর্ভুক্ত করে টিসিপি বার্তা প্রেরণ করে। আপনি আমার প্রোগ্রাম দ্বারা করা অনুরোধগুলির মধ্যে পার্থক্য করার জন্য একটি সার্ভার-সাইড মেকানিজম জিজ্ঞাসা করছেন (যা কোনও কিছু প্রেরণ করতে পারে) এবং কোনও ব্রাউজার দ্বারা করা অনুরোধগুলির মধ্যে যা অনুমোদিত পৃষ্ঠা থেকে লোড করা পৃষ্ঠা রয়েছে। এটি কেবল করা যায় না; আমার প্রোগ্রামটি সর্বদা একটি ওয়েব পৃষ্ঠা দ্বারা তৈরি করা অনুরূপ অনুরোধ প্রেরণ করতে পারে।

একই-উত্স নীতিটি উদ্ভাবিত হয়েছিল কারণ এটি অন্য ওয়েবসাইটের শংসাপত্র-সীমাবদ্ধ সামগ্রী অ্যাক্সেস থেকে একটি ওয়েবসাইটের কোডকে বাধা দেয় । অ্যাজাক্স অনুরোধগুলি লক্ষ্যবস্তু দ্বারা অনুমোদিত কোনও লেখক কুকিজের সাথে ডিফল্টরূপে প্রেরণ করা হয়। উদাহরণস্বরূপ, ধরুন আমি দুর্ঘটনাক্রমে লোড করি http://evil.com/যা এর জন্য একটি অনুরোধ প্রেরণ করে http://mail.google.com/। যদি এসওপিটি না থাকে এবং আমি জিমেইলে সাইন ইন হয়ে থাকি, তবে স্ক্রিপ্টটি evil.comআমার ইনবক্সটি দেখতে পেত। যদি সাইটটি আমার কুকিজ ছাড়াই evil.comলোড করতে চায় mail.google.com, এটি কেবলমাত্র একটি প্রক্সি সার্ভার ব্যবহার করতে পারে; জনসাধারণের বিষয়বস্তু mail.google.comগোপন নয় (কিন্তু বিষয়বস্তু mail.google.comযখন আমার কুকিজ অ্যাক্সেস হয় একটি গোপন)।


7

একই-উত্স নীতি ক্লায়েন্ট-সাইডে প্রয়োগ করা হয়। যদি ব্রাউজারটি সিওআরএস সমর্থন করে তবে সার্ভারটি শিরোনামগুলি परत পাঠাতে পারে যা ব্রাউজারকে একই-উত্স নীতিতে ব্যতিক্রম করতে বলে। উদাহরণস্বরূপ, হেডার পাঠানো

 Access-Control-Allow-Origin: www.example.com

www.example.com থেকে ক্রস-অরিজিন অনুরোধগুলি মঞ্জুর করার জন্য ব্রাউজারটিকে বলবে।

 Access-Control-Allow-Origin: *

ব্রাউজারকে সেই সংস্থানটিতে সমস্ত ক্রস-আর্জি অনুরোধগুলি মঞ্জুর করার জন্য বলে।


3

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

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


যদি রেফারার লাইনটি দূষিতভাবে জাল করে তবে কী হবে?
বেনি

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

1

কীভাবে ওয়েব সার্ভারগুলি একই-উত্স নীতি প্রয়োগ করে?

সংক্ষেপে, এগুলি না করে, যেমন অ্যাপসিলার এবং ডার্ক নির্দেশ করেছেন।
একটি গুরুত্বপূর্ণ কারণ হ'ল ACAO শিরোনাম সার্ভারগুলিকে তাদেরকে র‌্যাম্প্যান্ট ডিডিওএস থেকে রক্ষা করে - পরিষেবা বিতরণের অস্বীকৃতি- আক্রমণগুলি

কে:

এইচটিপি রেসপন্স-শিরোনাম হিসাবে এসিএও ওয়েব ক্লায়েন্টকে ব্যাখ্যা করার জন্য বোঝানো হয়েছে, এই ধারণাটি অধীনে পরিচালিত হয়েছে যে বেশিরভাগ মানব ইন্টারনেট ব্যবহারকারী ডাব্লু 3 সি প্রস্তাবিত খসড়াটি মেনে চলেন এবং কার্যকর করেন এমন প্রধান ব্রাউজার বিক্রেতাদের মাধ্যমে ওয়েব ব্রাউজ করছেন । তাদের সর্বোপরি একটি দ্রুত, অ্যাক্সেসযোগ্য ইন্টারনেট থেকে উপকৃত হওয়া উচিত।

কিভাবে:

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

এজন্য আপনাকে ACAO HTTP শিরোলেখের মাধ্যমে ক্রস-অরিজিন সাইট অ্যাক্সেস করতে অপ্ট-ইন করতে হবে । আপনি, ব্যবহারকারী, ব্যবহারকারী-সচেতন ইন্টারঅ্যাকশন, অর্থাত্ একটি ইন্টারনেট লিঙ্কের মাধ্যমে যে কোনও সময় বলা সাইটের অ্যাক্সেস করতে পারেন। ঠিক যেমন আপনি নিজের ক্লিপবোর্ড থেকে বা আপনার সামগ্রী অনুলিপি করতে বা কাস্ট করতে পারেন তবে অন্য কোনও উপায়ে নয় - প্লাগইনগুলি একপাশে রেখে।

ভবিষ্যত:

এই মুহুর্তে, ওয়েব-ব্রাউজার প্রস্তুতকারকের দিকটি মনোযোগ দিন:

সুরক্ষা বিধিনিষেধগুলি টিএসএল 2/3, শক্তিশালী সেশন-আইডি, টিএন, দুটি ফ্যাক্টর প্রমাণীকরণ ইত্যাদি ব্যবহার করে শালীনভাবে প্রতিষ্ঠিত হতে পারে ..

'গুগল' এর এটি ডিডিওএস সম্পর্কে দেখানোর এবং বলার আছে

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


0

অন্যরা যেমন বলেছে, এটি ক্লায়েন্টের হাতে। তবে সার্ভারের এক্সএসএসের সাথে ডিল করার দরকার হতে পারে, যা এসওপি ছাড়িয়ে যায়।

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

একটি ভাল ওয়েব সার্ভার (যেমন হায়, এক স্ট্যাক এক্সচেঞ্জ ব্যবহার করে) এটি ঘটতে দেবে না। এটি <script>ট্যাগটি সরিয়ে ফেলতে পারে , বা এড়িয়ে যেতে পারে, সুতরাং এটি দেখা যাবে কিন্তু কার্যকর করা হবে না (সতর্কতা - এটি এক্সএসএস প্রতিরোধের একটি নির্ভরযোগ্য রেসিপি থেকে অনেক দূরে)।

সুতরাং এটি ক্লায়েন্ট পক্ষ যা এসওপি প্রয়োগ করে, তবে কিছু ক্ষেত্রে সার্ভারটিকে এড়াতে বাধা দেওয়ার জন্য কাজ করা উচিত।

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