অন্য ডোমেনের জন্য কীভাবে কুকি সেট করবেন


166

বলুন আমার কাছে একটি ওয়েবসাইট আছে a.com, এবং এই সাইটের কোনও নির্দিষ্ট পৃষ্ঠাটি লোড হয়ে গেলে পৃষ্ঠা লিঙ্কটি বলুন, আমি অন্য সাইট নামে একটি কুকি সেট করতে চাই b.com, তারপরে ব্যবহারকারীকে পুনঃনির্দেশ করুন b.com

আমি বোঝাতে চাইছি, আমি লোডের জন্য a.com/linkএকটি কুকি সেট করতে b.comএবং ব্যবহারকারীকে পুনর্নির্দেশ করতে চাই b.com

আমি এটি পরীক্ষা করেছি এবং ব্রাউজারটি আসলে কুকিটি পেয়েছিল a.com/link, কিন্তু এটি পুনরায় নির্দেশনার অনুরোধে সেই কুকিটি প্রেরণ করে নি b.com। এটা কি স্বাভাবিক?

আমরা কি অন্য ডোমেনের জন্য কুকি সেট করতে পারি?


সচেতন হন যে আপনি যদি বি ডটকমে কুকি সেট করতে URL প্যারামিটার ব্যবহার করেন তবে যে কোনও ওয়েবসাইট থেকে b.com এ যে কোনও কুকির মান জোর করতে পারে।
জুলিয়েন

2
b.com এর একটি আইফ্রেম ব্যবহার করুন যা কুকি সেট করে;)
জাকৌড়

উত্তর:


129

আপনি অন্য ডোমেনের জন্য কুকি সেট করতে পারবেন না। এটি মঞ্জুরি দেওয়া একটি বিশাল নিরাপত্তা ত্রুটি উপস্থাপন করবে।

কুকি সেট করতে আপনার বি.কম পেতে হবে। যদি a.com ব্যবহারকারীকে পুনর্নির্দেশ করেb.com/setcookie.php?c=value

সেটকুকি স্ক্রিপ্টটিতে কুকি সেট করতে এবং বি ডট কমের সঠিক পৃষ্ঠায় পুনঃনির্দেশ করতে নিম্নলিখিতটি থাকতে পারে

<?php
    setcookie('a', $_GET['c']);
    header("Location: b.com/landingpage.php");
?>

তবুও এ ডট কম বি ডট কমকে পুনর্নির্দেশের সময় একই তথ্য শিরোনাম আকারে inোকাতে পারে, তাই না? এটি কেন সুরক্ষা ত্রুটি উপস্থাপন করে না?
কোডার

3
@ কোডার, সেটকুকি ফাংশনের ফলে কুকি শিরোনামটি বি ডট কম থেকে ব্রাউজারে প্রেরণ করা হবে। a.com বি ডট কম থেকে কোনও কুকি হেডার পাঠাতে সক্ষম নয়।
qbert220

হ্যাঁ এটি খুব অনিরাপদ তবে এটি কাজ করে। যদি ওপি a.com এবং বি ডট কম এর মালিক এবং কুকিটি বেশ তুচ্ছ, তবে সম্ভবত এটি ভাল।
রকেটসারেস্ট

1
উত্তরে এটি আরও ভালভাবে লক্ষ্য করা উচিত যে এটি কাজ করলেও এটি নিরাপত্তাহীন।
রায় লিং

2
আপনি কীভাবে এটি বলতে পারেন তবে ইউটিউব ইউটিউবে তাদের অ্যাকাউন্ট দেখানোর জন্য জিমেইল দ্বারা তৈরি কুকিজ পড়ছে?
তাহা সুলতান তেমুরি

55

শীর্ষস্থানীয় উত্তরের মতো, তবে পৃষ্ঠায় পুনর্নির্দেশের পরিবর্তে এবং আবার ফিরে যা খারাপ ব্যবহারকারীর অভিজ্ঞতার কারণ হয়ে আপনি ডোমেন এ এ একটি চিত্র সেট করতে পারেন A.

<img src="http://www.example.com/cookie.php?val=123" style="display:none;">

এবং তারপরে ডোমেইন বিতে যা কুকি.এফপিপিতে উদাহরণ.কম, আপনার নিম্নলিখিত কোডটি পাবেন:

<?php
    setcookie('a', $_GET['val']);
?>

Hattip করার সুবিন


1
চমৎকার হ্যাক ... :)
সোমবার

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

আমি আপনাকে নিশ্চিত করতে পারি যে এটিতে কোনও ব্যাংক ব্যালেন্স জড়িত ছিল না। তবে ভাল কথা :)
জোনাথন

2
যদি এই ক্ষেত্রে পছন্দ হয় তবে প্রত্যেকে নিজের প্যারামিটার দিয়ে এই ডোমেনটিকে কল করতে পারবেন তবে আপনি অন্য প্যারামিটার যুক্ত করে সুরক্ষা যুক্ত করতে পারেন। ডেটা এবং একটি অতিরিক্ত লবণ দিয়ে একটি হ্যাশ তৈরি করুন এবং এটি প্যারামিটার হিসাবে পাস করুন। আপনার কুকি.এফপি তে টোকেনটি পুনরায় তৈরি করে এবং তুলনা করে simply _GET ['ভাল'] তে ডেটা যাচাই করুন।
সেবা এম

আপনি যদি এইভাবে জিইটি প্রেরণ করেন তবে আপনি এজেএক্সও ব্যবহার করতে পারেন।
ব্যবহারকারী 10398534

18

সম্ভাব্য আপনি এটির Iframeজন্য ব্যবহার করতে পারেন । ফেসবুক সম্ভবত এই কৌশলটি ব্যবহার করে। আপনি এখানে আরও পড়তে পারেন । স্ট্যাকওভারফ্লো একই ধরণের কৌশল ব্যবহার করে তবে এইচটিএমএল 5 স্থানীয় স্টোরেজ সহ তাদের ব্লগে আরও


1
iframe আমার সমাধানের জন্য নিখুঁতভাবে কাজ করেছে, কেবল একটি সাধারণ প্রাপ্তির অনুরোধের মতো ইউআরএলগুলিতে মানগুলি অন্তর্ভুক্ত করে এবং কুকির মান সহ সার্ভারের কাছ থেকে প্রতিক্রিয়া জানায়
জোয়েল ডেভিস

পরামর্শ দিন, আপনার কাজ করতে আপনার অ্যাক্সেস-কন্ট্রোল-মঞ্জুরি-উত্সটি সঠিকভাবে কনফিগার করা উচিত।
ব্যবহারকারী 10398534

6

অন্য ডোমেনের জন্য কুকি সেট করা সম্ভব নয়।

আপনি যদি অন্য কোনও ডোমেনে ডেটা পাস করতে চান তবে আপনি এটি ইউআরএলে এনকোড করতে পারেন।

a.com  ->  b.com/redirect?info=some+info (and set cookie) -> b.com/other+page

4
ইউআরএল থেকে একটি সেশন কুকি সেট করা একটি সুরক্ষা ঝুঁকি। ইউআরএলগুলি সাধারণত লগ হয় এবং আক্রমণকারীকে ব্যবহারকারীর সেশনে চুরি করতে দেয়
ডেন ম্যাকোলে

6

আপনি পারবেন না, অন্তত সরাসরি না। এটি একটি বাজে সুরক্ষা ঝুঁকি হতে পারে।

আপনি যখন কোনও ডোমেন বৈশিষ্ট্য নির্দিষ্ট করতে পারেন , স্পেসিফিকেশনটিতে বলা হয়েছে "ব্যবহারকারী এজেন্ট কুকিগুলিকে প্রত্যাখ্যান করবে যতক্ষণ না ডোমেন বৈশিষ্ট্যটি কুকিটির জন্য কোনও ক্ষেত্র নির্দিষ্ট না করে যা মূল সার্ভারটি অন্তর্ভুক্ত করে" "

যেহেতু মূল সার্ভারটি রয়েছে a.comএবং এতে অন্তর্ভুক্ত নেই b.com, এটি সেট করা যায় না।

আপনি পেতে প্রয়োজন হবে b.comপরিবর্তে কুকি সেট করতে। আপনি এটি করতে পারেন (উদাহরণস্বরূপ) HTTP এ b.comএবং পিছনে পুনর্নির্দেশ করে ।


আমি জানি এটি একটি পুরানো প্রতিক্রিয়া, তবে কেন এটি সুরক্ষা ঝুঁকিপূর্ণ হবে? আপনি আপনার কনসোল বা কোনও এক্সটেনশনে কুকি সেট করতে পারেন? আপনি যদি অন্য কোনও ডোমেনের জন্য কুকি সেট করতে পারেন তবে বিষয়টি কেন বিবেচিত হবে?
টিম্বারম্যান

@Timberman - প্রশ্ন জাভাস্ক্রিপ্ট একটি ওয়েবসাইটে চলমান সম্পর্কে না ডেভেলপার টুলস এবং না একটি স্পষ্টভাবে ইনস্টল এক্সটেনশন দিয়ে। এটি সুরক্ষা ঝুঁকিপূর্ণ কারণ যে কেউ যার evil-hack.com জন্য কুকি সেট করতে পারে their-favourite-website.comসেই ওয়েবসাইটটিতে তাদের পছন্দগুলি পরিবর্তন করতে পারে।
কোয়ান্টিন

আমি এটি বুঝতে পারি, তবে এটি কীভাবে সুরক্ষা ঝুঁকিপূর্ণ? আমি নিশ্চিত যে এটি সুরক্ষার ভিত্তিতে করার মতো কিছু নেই?
টিম্বারম্যান

@ টিমবারম্যান - যদি আপনি কোনও আক্রমণকারীর সাইটের সম্পূর্ণ ভিন্ন সাইটের জন্য আপনার পছন্দগুলি পরিবর্তন করে কোনও সমস্যা দেখতে না পান তবে আমি কীভাবে এটি আরও স্পষ্টভাবে ব্যাখ্যা করব তা জানি না।
কুইন্টিন

আমি সমস্যাটি দেখছি, তবে এটি কীভাবে সুরক্ষা ঝুঁকিপূর্ণ তা আমি দেখছি না। আমি আপনার সাথে একমত যে জাভাস্ক্রিপ্ট অন্য কোনও ডোমেনের জন্য কুকি সেট করতে সক্ষম হবে না, তবে এটি সক্ষম হলে এটি কীভাবে সুরক্ষা সমস্যা?
টিম্বারম্যান

5

যদি আপনার কাছে থাকে a.my-company.comএবং ন্যায়বিচারের b.my-company.comপরিবর্তে a.comএবং b.comআপনি .my-company.comডোমেনের জন্য একটি কুকি দিতে পারেন - এটি গৃহীত হবে এবং উভয় ডোমেনে প্রেরণ করা হবে।


1
b.my-company.com এর জন্য a.my-company.com এ কোনও কুকি তৈরি করা সম্ভব?
মহেশ কাজল

1
যদি না আমার- কম্পানি ডট কম জনসাধারণের প্রত্যয় ব্ল্যাকহোল তালিকায় না থাকে তবে ব্রাউজারটি নিঃশব্দে কুকি সেট করার সমস্ত প্রচেষ্টা উপেক্ষা করবে! : '- (
মাইকেল

5

দেখতে RFC6265 :

ব্যবহারকারীর এজেন্ট কুকিগুলিকে প্রত্যাখ্যান করবে যদি না ডোমেন বৈশিষ্ট্যটি কুকির জন্য কোনও সুযোগ নির্দিষ্ট করে না যা মূল সার্ভারটি অন্তর্ভুক্ত করে। উদাহরণস্বরূপ, ব্যবহারকারী এজেন্ট foo.example.com থেকে "উদাহরণ.com" বা "foo.example.com" এর একটি ডোমেন বৈশিষ্ট্যযুক্ত কুকি গ্রহণ করবে, তবে ব্যবহারকারী এজেন্ট কোনও ডোমেন বৈশিষ্ট্যযুক্ত কুকি গ্রহণ করবেন না "bar.example.com" বা "baz.foo.example.com" এর।

দ্রষ্টব্য: সুরক্ষার কারণে, অনেকগুলি ব্যবহারকারী এজেন্ট ডোমেন বৈশিষ্ট্যগুলি "পাবলিক প্রত্যয়" এর সাথে সম্পর্কিত প্রত্যাখ্যান করতে কনফিগার করা হয়েছে। উদাহরণস্বরূপ, কিছু ব্যবহারকারী এজেন্ট "com" বা "co.uk" এর ডোমেন বৈশিষ্ট্যগুলি প্রত্যাখ্যান করবে। (আরও তথ্যের জন্য বিভাগ 5.3 দেখুন।)

তবে চিত্র / আইফ্রেমের সাথে উপরোক্ত উল্লিখিত কাজটি কাজ করে, যদিও এটি তার নিরাপত্তাহীনতার কারণে প্রস্তাবিত নয়।


1

আপনি পারবেন না তবে ... যদি আপনি উভয় পৃষ্ঠার মালিক হন তবে ...

1) আপনি ক্যোয়ারী প্যারামের মাধ্যমে ডেটা প্রেরণ করতে পারেন ( http://siteB.com/?key=value )

2) আপনি সাইট এ এর ​​ভিতরে সাইট বি এর একটি আইফ্রেম তৈরি করতে পারেন এবং আপনি এক জায়গা থেকে অন্য জায়গায় পোস্ট বার্তা প্রেরণ করতে পারেন। সাইট বি সাইট বি কুকিজের মালিক হিসাবে এটি সঠিক পোস্ট বার্তা প্রক্রিয়াকরণের মাধ্যমে আপনার যা প্রয়োজন মান সেট করতে সক্ষম হবে। (আপনার বার্তাগুলি প্রেরণে অন্য অযাচিত প্রেরকদের আপনার বাধা দেওয়া উচিত! এটি আপনার এবং যে ঘটনাটি ঘটেছিল তা থেকে রোধ করার জন্য আপনি যে পদ্ধতিটি ব্যবহার করার সিদ্ধান্ত নেন সেটি নির্ভর করে)


0

এই লিঙ্কে, আমরা সমাধান লিঙ্কটি খুঁজে পাব ।

setcookie("TestCookie", "", time() - 3600, "/~rasmus/", "b.com", 1);

যে কাজ করবে না। স্পেসিফিকেশনটি দেখুন : "ব্যবহারকারী এজেন্ট কুকিগুলিকে প্রত্যাখ্যান করবে যদি না ডোমেন অ্যাট্রিবিউট কুকির জন্য কোনও ক্ষেত্র নির্দিষ্ট না করে যা মূল সার্ভারটি অন্তর্ভুক্ত করে।"
কোয়ান্টিন

0

এ থেকে একটি পোষ্ট অনুরোধ প্রেরণ করুন পোস্টের অনুরোধগুলি কেবল সার্ভারসাইডে রয়েছে এবং ক্লায়েন্ট দ্বারা অ্যাক্সেস করা যায় না।

আপনি থেকে একটি পোস্ট অনুরোধ পাঠাতে পারেন a.comকরার b.comকার্ল (প্রস্তাবিত, serverside) অথবা একটি গোপন ব্যবহার method="POST"ফর্ম (clientside)। আপনি যদি পরেরটির জন্য যান তবে আপনি আপনার জাভাস্ক্রিপ্ট অবলম্বন করতে চাইতে পারেন যাতে ব্যবহারকারী অ্যালগরিদম বুঝতে এবং এতে হস্তক্ষেপ করতে সক্ষম না হন।

b.comকুকিজ সেট করতে একটি গেটওয়ে তৈরি করুন:

<?php
    if (isset($_POST['data']) {
        setcookie('a', $_POST['data']);
        header("Location: b.com/landingpage");
    }
?>

আপনি যদি আরও এক ধাপ সুরক্ষা আনতে চান তবে ক্রিপ্টোগ্রাফিক সাইফার ব্যবহার করে এনক্রিপ্ট (অন ) এবং ডিক্রিপ্ট (অন ) ডেটা উভয় পক্ষের ( a.comএবং b.com) একটি ফাংশন বাস্তবায়ন করুন ।a.comb.com

আপনি যদি এমন কিছু করার চেষ্টা করছেন যা অবশ্যই একেবারে সুরক্ষিত হবে (যেমন লগইন সেশন স্থানান্তর করুন) oAuth চেষ্টা করুন বা https://api.cloudianos.com/docs#v2/auth থেকে কিছু অনুপ্রেরণা নিন

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