वापस ब्लॉग पर

curl कुकीज़: सत्रों को सुरक्षित रूप से कैसे भेजें, स्टोर करें और फिर से उपयोग करें

Isabella Garcia
Isabella Garcia

Web Data Collection Specialist

21-Aug-2026

TL;DR:

  • एक कर्ल कुकी को सीधे -b के साथ भेजा जा सकता है, लेकिन एक कुकी जार एक मल्टी-रिक्वेस्ट सत्र के लिए अधिक सुरक्षित है। जार कर्ल को एक्सपायरी, डोमेन, पथ, और ट्रांसपोर्ट नियम लागू करने देता है, बजाय इसके कि Cookie हेडर को हाथ से पुनर्निर्माण किया जाए।
  • -c कुकीज़ को Set-Cookie से प्राप्त करता है; -b अगली मांग के लिए कुकीज़ पढ़ता है। जब एक स्क्रिप्ट को समान जार को अपडेट और पुन: उपयोग करना चाहिए, तो दोनों विकल्पों का उपयोग करें।
  • कुकी फ़ाइलें क्रेडेंशियल्स होती हैं। इन्हें स्रोत नियंत्रण के बाहर स्टोर करें, फ़ाइल अनुमतियाँ सीमित करें, लॉग से मानों को मिटाएं, और उन्हें तब हटा दें जब अधिकृत कार्यप्रवाह समाप्त हो।
  • कर्ल क्लाइंट-साइड JavaScript को निष्पादित नहीं करता है या इंटरएक्टिव MFA और पासकी समारोहों को पूरा नहीं करता है। उन प्रक्रियाओं को एक स्वीकृत ब्राउज़र सत्र और एक मानव-नियंत्रित प्रमाणीकरण सीमा की आवश्यकता होती है।
  • स्क्रैपलेस स्क्रैपिंग ब्राउज़र कर्ल की सीमा तक पहुँचने के बाद ब्राउज़र-केवल कार्यप्रवाह को जारी रख सकता है। यह एक ताजा क्लाउड ब्राउज़र सत्र प्रदान करता है; आपका ऐप अभी भी प्रमाणीकरण और क्रेडेंशियल हैंडलिंग का मालिक है।
  • शुरू करने के लिए स्वतंत्र। नए स्क्रैपलेस खातों में मुफ्त स्क्रैपिंग ब्राउज़र रनटाइम शामिल है — app.scrapeless.com पर साइन अप करें।

परिचय: कुकीज़ अलग-अलग HTTP अनुरोधों को सत्र में बदल देती हैं

HTTP अनुरोध स्वतंत्र होते हैं जब तक कि सर्वर और क्लाइंट स्थिति पर सहमत नहीं हो जाते। एक प्रतिक्रिया एक कुकी सेट कर सकती है, और एक बाद का अनुरोध उस कुकी को मिलान करने वाले होस्ट और पथ पर लौटाता है। यह छोटा विनिमय कई अनुप्रयोगों को प्राथमिकताएँ, अनाम गाड़ियाँ, सहमति स्थिति, और अधिकृत सत्रों को संरक्षित करने का तरीका है।

कर्ल में इसी काम के लिए एक कुकी इंजन शामिल है। आधिकारिक कर्ल HTTP स्क्रिप्टिंग गाइड तार्किक कुकी स्ट्रिंग्स और स्थायी जार दोनों का दस्तावेज़ीकरण करता है, जबकि HTTP स्थिति-प्रबंधन विनिर्देशन उनके पीछे के सर्वर और उपयोगकर्ता-एजेंट व्यवहार को परिभाषित करता है।

यह गाइड एक सार्वजनिक परीक्षण अंत बिंदु और कर्ल 8.7.1 का उपयोग करती है ताकि गैर-संवेदनशील डेमो कुकीज़ को भेजा, कैप्चर, स्टोर, निरीक्षण और पुन: उपयोग किया जा सके। यह फिर HTTP सत्र और ब्राउज़र-केवल प्रमाणीकरण के बीच एक स्पष्ट रेखा खींचता है।


कर्ल कुकी क्या है?

कर्ल कुकी एक नाम-मूल्य जोड़ी है जो कर्ल HTTP Cookie अनुरोध हेडर में अपने कुकी-इंजन नियम लागू करने के बाद रखता है।

एक प्रदान करने के दो तरीके हैं:

विधि सर्वोत्तम फिट मुख्य व्यापार
--cookie / -b के साथ साहित्यिक स्ट्रिंग एक नियंत्रित अनुरोध जिसमें ज्ञात गैर-संवेदनशील मान होते हैं आप हर मान और मिलान निर्णय के मालिक हैं
--cookie / -b के साथ कुकी फ़ाइल आदेशों के बीच ले जाई जाने वाली एक सत्र फ़ाइल क्रेडेंशियल सामग्री बन जाती है
--cookie-jar / -c के साथ लिखी गई कुकी जार एक सर्वर-चालित बहु-चरण प्रवाह जार को सुरक्षित और साफ किया जाना चाहिए

प्रतिक्रिया दिशा अलग है। एक सर्वर Set-Cookie भेजता है; कर्ल विशेषताओं का मूल्यांकन करता है और योग्यता रखने वाली कुकीज़ को मेमोरी या जार में रिकॉर्ड करता है। Set-Cookie हेडर संदर्भ Domain, Path, Expires, Max-Age, Secure, HttpOnly, और SameSite जैसी विशेषताओं का वर्णन करता है।


-b के साथ कुकीज़ भेजें

-b, --cookie का संक्षिप्त रूप है। जब इसके तर्क में एक बराबर चिह्न होता है, तो कर्ल उस मान को फ़ाइल नाम के बजाय कुकी डेटा के रूप में मानता है।

bash Copy
curl --silent \
  --cookie "theme=dark; view=compact" \
  https://httpbingo.org/cookies

सार्वजनिक अंत बिंदु ने प्राप्त कुकीज़ को दर्शाया:

json Copy
{
  "cookies": {
    "theme": "dark",
    "view": "compact"
  }
}

साहित्यिक मान अप्रासंगिक प्राथमिकताओं के लिए सुविधाजनक हैं। साझा कमांड पंक्ति पर वास्तव में सत्र पहचानकर्ता न रखें: शेल इतिहास, प्रक्रिया निरीक्षण, टर्मिनल रिकॉर्डिंग और CI लॉग सभी इसे उजागर कर सकते हैं।


Set-Cookie एक प्रतिक्रिया हेडर है, इसलिए इसे प्रतिक्रिया के शरीर से अलग से निरीक्षण करें। --dump-header - मानक आउटपुट पर हेडर लिखता है, और --output /dev/null शरीर को त्याग देता है।

bash Copy
curl --silent \
  --dump-header - \
  --output /dev/null \
  "https://httpbingo.org/cookies/set?theme=dark"

जीवंत प्रतिक्रिया ने एक HTTP रिडायरेक्ट और यह हेडर लौटाया:

text Copy
set-cookie: theme=dark; Path=/; HttpOnly; Secure

HttpOnly ब्राउज़र JavaScript को मान पढ़ने से रोकता है; यह एक HTTP क्लाइंट को कुकी स्टोर करने और भेजने से नहीं रोकता है। Secure संचरण को सुरक्षित परिवहन तक सीमित करता है। कोई भी विशेषता कुकी को अनुमति देने वाले अनुदान में नहीं बदलती—सर्वर अभी भी तय करता है कि सत्र क्या एक्सेस कर सकता है।


कुकी जार लिखें और पुन: उपयोग करें

कुकी जार सर्वर की विशेषताओं को नेटकैप कुकी-फ़ाइल प्रारूप में संरक्षित करता है। स्थिति सेट करने वाले प्रतिक्रिया पर -c का उपयोग करें, फिर उस अनुरोध पर -b का उपयोग करें जिसे इसकी आवश्यकता है।

bash Copy
COOKIE_JAR="$(mktemp)"
chmod 600 "$COOKIE_JAR"

curl --silent --location \
  --cookie-jar "$COOKIE_JAR" \
  "https://httpbingo.org/cookies/set?demo_session=authorized" \
  --output /dev/null

curl --silent \
  --cookie "$COOKIE_JAR" \
  https://httpbingo.org/cookies

दूसरे आदेश ने लौटाया:

json Copy
{
  "cookies": {
    "demo_session": "authorized"
  }
}

जब सर्वर सत्र अपडेट कर सकता है, तो एक ही फ़ाइल को पढ़ें और लिखें:

bash Copy
curl --silent --location \
  --cookie "$COOKIE_JAR" \
  --cookie-jar "$COOKIE_JAR" \
  https://httpbingo.org/cookies

जब ट्रांसफर पूरा हो जाता है, तो जार लिखा जाता है। इसे एक निजी फाइल सिस्टम पर रखें और अधिकृत नौकरी के बाद हटा दें।

Scrapeless के साथ स्क्रैपिंग शुरू करें

अपने वेब स्क्रैपिंग और ऑटोमेशन वर्कफ़्लो को Scrapeless के साथ पावरअप करें!
आज ही साइन अप करें और $5 का मुफ्त क्रेडिट प्राप्त करें — क्रेडिट कार्ड की आवश्यकता नहीं

अपने मुफ्त क्रेडिट का दावा करें Scrapeless डैशबोर्ड में।
Scrapeless डैशबोर्ड जो $5.00 में टीम क्रेडिट दिखा रहा है


एकाधिक कुकीज और डोमेन/पथ नियम

कुकी इंजन केवल उन कुकीज को भेजता है जिनका दायरा अनुरोध से मेल खाता है। एक जार लाइन डोमेन, उपडोमेन शामिल हैं या नहीं, पथ, सुरक्षित ध्वज, समाप्ति, नाम, और मूल्य को रिकॉर्ड करती है।

पब्लिक टेस्ट कुकी इस प्रकार दिखती है:

text Copy
#HttpOnly_httpbingo.org FALSE / TRUE 0 demo_session authorized

#HttpOnly_ उपसर्ग curl का फ़ाइल-फॉर्मेट मार्कर है जो एक HttpOnly कुकी के लिए है। FALSE का अर्थ है कि डोमेन उपडोमेन को शामिल नहीं करता, / मेल खाता पथ है, TRUE सुरक्षित परिवहन को चिह्नित करता है, और 0 एक सत्र कुकी का प्रतिनिधित्व करता है जिसमें कोई स्थायी समाप्ति टाइमस्टैम्प नहीं है।

किसी आवेदन होस्ट के लिए एक कुकी को अन्य संबंधित होस्ट पर कॉपी नहीं किया जाना चाहिए और पथ-सीमित कुकी को पथ-सीमित रहना चाहिए।


सुरक्षित, HttpOnly, और SameSite

कुकी के गुण विभिन्न प्रश्नों के उत्तर देते हैं, इसलिए इन्हें स्वतंत्र रूप से मानें।

गुण यह क्या नियंत्रित करता है curl का प्रभाव
Secure क्या कुकी सुरक्षित परिवहन पर यात्रा करती है curl इसे साधारण HTTP पर नहीं भेजेगा
HttpOnly क्या ब्राउज़र जावास्क्रिप्ट इसे पढ़ सकती है curl अपने जार में मार्कर को संरक्षित करता है
SameSite क्या एक ब्राउज़र इसे क्रॉस-साइट संदर्भों में भेजता है एक कमांड-लाइन HTTP क्लाइंट एक ब्राउज़र के पूर्ण साइट-संदर्भ मॉडल की नकल नहीं करता है
Domain कौन सा होस्ट दायरा इसे प्राप्त कर सकता है curl अनुरोध होस्ट से मेल खाता है
Path कौन से URL पथ इसे प्राप्त कर सकते हैं curl अनुरोध पथ से मेल खाता है

अधिकार प्राप्त सत्रों के लिए, OWASP सत्र-प्रबंधन नियंत्रण का पालन करें: विश्राम और परिवहन में पहचानकर्ताओं की रक्षा करें, उन्हें आवेदन के माध्यम से घुमाएं, और समाप्ति को प्रभावी सर्वर-साइड बनाएं।


बिना लीक किए कुकी हेडर को डिबग करें

--verbose भेजे गए अनुरोध हेडर दिखाता है, जिसमें Cookie शामिल है। यह इसे उपयोगी और खतरनाक बनाता है।

वर्बोस आउटपुट का उपयोग केवल एक निजी स्थानीय टर्मिनल में करें जिसमें प्रदर्शन मान हों। साझा लोगो में, जार से नाम और दायरे की पुष्टि करें जबकि मूल्यों को संपादित करें:

bash Copy
awk 'BEGIN { FS="\t" } !/^#/ && NF >= 7 { print $1, $3, $6, "[REDACTED]" }' "$COOKIE_JAR"

यदि सर्वर 401 लौटाता है, तो पहले पुष्टि करें कि curl ने होस्ट और पथ के लिए अपेक्षित कुकी चुनी है। यदि सर्वर 403 लौटाता है, तो सत्र प्रमाणित हो सकता है लेकिन उस संसाधन के लिए अधिकृत नहीं है। न ही स्थिति खाता दायरे को बदलने या किसी अन्य उपयोगकर्ता के सत्र की कॉपी करने के लिए उचित ठहराती है।


जब curl पर्याप्त नहीं है

curl एक HTTP क्लाइंट है, न कि एक ब्राउज़र रनटाइम। यह क्लाइंट-साइड जावास्क्रिप्ट को निष्पादित नहीं करता, लॉगिन विजेट को रेंडर नहीं करता, पासकी समारोह को पूरा नहीं करता, या किसी व्यक्ति को MFA प्रम्प्ट को स्वीकृत करने की अनुमति नहीं देता।

ब्राउज़र-केवल प्रवाह भी कुकीज से परे राज्य पर निर्भर करते हैं: मूल स्टोरेज, सेवा कार्यकर्ता, जावास्क्रिप्ट से उत्पन्न अनुरोध, डिवाइस-बाउंड क्रेडेंशियल्स, और इंटरैक्टिव रीडायरेक्ट्स। केवल Cookie हेडर को पुनर्निर्मित करने से एक अधूरा या अमान्य सत्र उत्पन्न हो सकता है।

डॉक्यूमेंटेड HTTP प्रवाह और नियंत्रित APIs के लिए curl का उपयोग करें। जब आवेदन ब्राउज़र व्यवहार की आवश्यकता करता है, तो एक स्वीकृत ब्राउज़र सत्र का उपयोग करें।


Scrapeless के साथ वर्कफ़्लो जारी रखें

Scrapeless स्क्रैपिंग ब्राउज़र जावास्क्रिप्ट-निर्मित और इंटरैक्टिव वर्कफ़्लो के लिए एक क्लाउड ब्राउज़र प्रदान करता है। यह एक अनधिकृत curl कुकी को एक्सेस में परिवर्तित नहीं करता है।

सुरक्षित हैंडऑफ़ एक नया सत्र है: क्लाउड ब्राउज़र बनाएँ, एक अधिकृत ऑपरेटर को किसी आवश्यक लॉगिन या MFA सीमा को पूरा करने दें, फिर उस सत्र के भीतर अनुमोदित काम को बनाए रखें। सटीक SDK कनेक्शन के लिए आपके Scrapeless API कुंजी की आवश्यकता है।

नोट: निम्नलिखित ब्लॉक के लिए SCRAPELESS_API_KEY और एक अधिकृत लक्ष्य की आवश्यकता है। स्थानीय सत्यापन वातावरण ने स्थापित SDK इंटरफेस की पुष्टि की लेकिन किसी प्रमाणीकृत क्लाउड सत्र को नहीं चलाया।

javascript Copy
import { Playwright } from "@scrapeless-ai/sdk";

const browser = await Playwright.connect({
  apiKey: process.env.SCRAPELESS_API_KEY,
  sessionTTL: 300,
  proxyCountry: "US",
});

const context = await browser.newContext();
const page = await context.newPage();
await page.goto("https://app.example.com/login", {
  waitUntil: "domcontentloaded",
});

// An authorized operator completes any login, MFA, or passkey step here.
// Continue only within the account and scope approved for the workflow.

await browser.close();

Srapeless Scraping Browser पृष्ठ प्रबंधित ब्राउज़र सीमा को समझाता है। Scrapeless मूल्य निर्धारण की जाँच करें, SDK को Scrapeless दस्तावेज़ीकरण के साथ संरेखित रखें, और जब ब्राउज़र को HTTP प्रतिक्रिया निकाय की बजाय एक फ़ाइल उत्पन्न करनी हो, तो Puppeteer डाउनलोड कार्यप्रवाह का उपयोग करें।


निष्कर्ष: सत्र स्थिति को जानबूझकर रखें

curl कुकीज़ पूर्वानुमानित होती हैं जब आप प्रवाह को प्राप्त करें, संग्रहीत करें, मिलाएं, भेजें और नष्ट करें में विभाजित करते हैं। सर्वर स्थिति को कैप्चर करने के लिए -c का उपयोग करें, इसे फिर से उपयोग करने के लिए -b का उपयोग करें, और जब एक से अधिक आदेश भाग लेते हैं तो एक निजी जार का उपयोग करें।

जब कार्यप्रवाह जावास्क्रिप्ट, इंटरएक्टिव प्रमाणीकरण, या ब्राउज़र-बाउंड क्रेडेंशियल्स में पार करता है, तो सत्र को एक हेडर व्यायाम के रूप में न मानें। एक स्वीकृत ब्राउज़र सत्र बनाएं और इसके दायरे को स्पष्ट रखें।


एक सुरक्षित ब्राउज़र कार्यप्रवाह बनाने के लिए तैयार हैं?

हमारे समुदाय में शामिल हों ताकि अधिकृत स्वचालन बनाने वाले डेवलपर्स के साथ सत्र-प्रबंधन पैटर्न की तुलना की जा सके: Discord · Telegram

app.scrapeless.com पर मुफ्त Scraping Browser रनटाइम के लिए साइन अप करें और ब्राउज़र-केवल चरणों को एक प्रबंधित सत्र में ले जाएं।


सामान्य प्रश्न

प्रश्न: curl -b का क्या काम है?

curl -b कुकी इंजन को सक्षम करता है और अनुरोध के लिए या तो एक लिटरल कुकी स्ट्रिंग या एक कुकी फ़ाइल प्रदान करता है।

प्रश्न: curl -c का क्या काम है?

curl -c ट्रांसफर पूरा होने पर पात्र कुकीज़ को एक कुकी जार में लिखता है। एक ही फ़ाइल को पढ़ने और अपडेट करने के लिए -b के साथ जोड़ी बनाएं।

प्रश्न: क्या कुकी जार को कमिट करना सुरक्षित है?

नहीं। एक कुकी जार सक्रिय सत्र क्रेडेंशियल्स रख सकता है और इसे प्रतिबंधात्मक फ़ाइल सिस्टम अनुमतियों के साथ स्रोत नियंत्रण के बाहर रहना चाहिए।

प्रश्न:curl जार से कुकी भेजने में असफल क्यों हो रहा है?

कुकी की अवधि समाप्त हो सकती है या अनुरोध के डोमेन, पथ, या सुरक्षित-परिवहन आवश्यकताओं से मेल नहीं खा सकती है। इन गुणों की जांच करें बिना मान को प्रिंट किए।

प्रश्न: क्या curl MFA या पासकी लॉगिन पूरा कर सकता है?

नहीं। इंटरएक्टिव MFA और पासकी समारोहों के लिए एक ब्राउज़र और अक्सर एक अधिकृत व्यक्ति की आवश्यकता होती है जो चरण को स्वीकृत करे।

प्रश्न: क्या Scrapeless हर curl कुकी जार का आयात कर सकता है?

नहीं। ब्राउज़र सत्र कुकीज़ से अधिक पर निर्भर कर सकते हैं, इसलिए सुरक्षित सामान्य पैटर्न यह है कि एक नया अधिकृत ब्राउज़र सत्र शुरू करें और इसके अंदर आवश्यक प्रमाणीकरण पूरा करें।

प्रश्न: सत्र कार्यप्रवाह में कितनी समवर्तीता होनी चाहिए?

जब तक एप्लिकेशन के मालिक ने किसी अन्य सीमा को मंजूरी नहीं दी है, तब तक प्रति मेज़बान तीन से अधिक श्रमिक नहीं रखें, और प्रत्येक श्रमिक के सत्र स्थिति को अलग करें।

स्क्रैपलेस में, हम केवल सार्वजनिक रूप से उपलब्ध डेटा का उपयोग करते हैं, जबकि लागू कानूनों, विनियमों और वेबसाइट गोपनीयता नीतियों का सख्ती से अनुपालन करते हैं। इस ब्लॉग में सामग्री केवल प्रदर्शन उद्देश्यों के लिए है और इसमें कोई अवैध या उल्लंघन करने वाली गतिविधियों को शामिल नहीं किया गया है। हम इस ब्लॉग या तृतीय-पक्ष लिंक से जानकारी के उपयोग के लिए सभी देयता को कोई गारंटी नहीं देते हैं और सभी देयता का खुलासा करते हैं। किसी भी स्क्रैपिंग गतिविधियों में संलग्न होने से पहले, अपने कानूनी सलाहकार से परामर्श करें और लक्ष्य वेबसाइट की सेवा की शर्तों की समीक्षा करें या आवश्यक अनुमतियाँ प्राप्त करें।

सबसे लोकप्रिय लेख

सूची