এমন কোনও পৃষ্ঠাতে অ্যাক্সেসের জন্য সিআরএল যা একটি অন্য পৃষ্ঠা থেকে লগইন প্রয়োজন


124

আমি 2 পৃষ্ঠা আছে: xyz.com/aএবং xyz.com/b। আমি প্রথমে xyz.com/bলগইন করলেই এবং কেবলমাত্র অ্যাক্সেস করতে পারি xyz.com/a। যদি xyz.com/bঅন্যের মধ্যে দিয়ে না গিয়ে অ্যাক্সেস করা হয় , তবে আমি ব্রাউজারের মাধ্যমে অ্যাক্সেস অস্বীকার করে (লগইনে পুনর্নির্দেশ করব না) পাই। আমি একবার লগইন করলে আমি অন্যটিতে xyz.com/aপ্রবেশ করতে পারি।

আমার সমস্যাটি কার্ল কমান্ড ব্যবহার করে এটি করছে। আমি xyz.com/aকার্ল ব্যবহার করে সফলভাবে লগইন করতে পারি , তবে তারপরে চেষ্টা করি xyx.com/bএবং অ্যাক্সেস বঞ্চিত হয়ে যাই।

আমি নিম্নলিখিত ব্যবহার:

curl --user user:pass https://xyz.com/a  #works ok
curl https://xyz.com/b #doesn't work

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

উত্তর:


146

ওয়েব সাইট সম্ভবত আপনার সেশন তথ্য সংরক্ষণ করতে কুকি ব্যবহার করে । আপনি যখন দৌড়াবেন

curl --user user:pass https://xyz.com/a  #works ok
curl https://xyz.com/b #doesn't work

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

আপনাকে প্রথমে কমান্ড দ্বারা তৈরি কুকিগুলি সংরক্ষণ করতে হবে :

curl --user user:pass --cookie-jar ./somefile https://xyz.com/a

এবং তারপরে দ্বিতীয়টি চালানোর সময় সেগুলি আবার পড়ুন:

curl --cookie ./somefile https://xyz.com/b

বিকল্পভাবে আপনি একই কমান্ডে দুটি ফাইলই ডাউনলোড করার চেষ্টা করতে পারেন, যা আমি মনে করি একই কুকিজ ব্যবহার করবে।


এটি আশ্চর্যের বিষয় কারণ যখন আমি এটি চেষ্টা করি তখন এটি কাজ করে না যেমন সঞ্চিত কুকিতে somefileপাথ প্যারামিটার রয়েছে ( /aএই ক্ষেত্রে) এবং এটি দ্বিতীয় কলটিতে ফরোয়ার্ড করা হয় না। আমি যদি ফাইলটিতে কুকি সম্পাদনা করি এবং কেবল স্ল্যাশ রাখি তবে এটি কাজ করে (কুকি দ্বিতীয় কলটিতে ফরোয়ার্ড করা হয়েছে)। আপনি কি জানেন যে কুকি ফাইলে পাথের স্টোরেজটি রোধ করা সম্ভব কিনা?
рüффп

123

এছাড়াও আপনি ব্রাউজারের মাধ্যমে লগ ইন করতে এবং কুকিজ সহ সমস্ত শিরোনামের সাথে কমান্ড পেতে চাইতে পারেন:

বিকাশকারী সরঞ্জামগুলির নেটওয়ার্ক ট্যাবটি খুলুন, লগ ইন করুন, প্রয়োজনীয় পৃষ্ঠায় নেভিগেট করুন, "সিআরএল হিসাবে অনুলিপি করুন" ব্যবহার করুন।

স্ক্রিনশট


12
এটি একটি গভীর উত্তর! এটি সরাসরি প্রশ্নের উত্তর দেয় না, কারণ এটি উত্তর দেয় কীভাবে তা দেখায় ।
বিজিস্ট্যাক 15

5
এটি সবচেয়ে দরকারী উত্তর। এটি আপনাকে মাল্টি-স্টেপ প্রমাণীকরণ দেখতে এবং বুঝতে সহায়তা করে and
পিয়ের ডি

এই দুর্দান্ত সরঞ্জামগুলিতে কবর দেওয়া এই বৈশিষ্ট্যটি সম্পর্কে আমি জানতাম না। সুপার দরকারী!
তীমথিয় সি। কুইন

52

কিছু গুগল করার পরে আমি এটি পেয়েছি:

curl -c cookie.txt -d "LoginName=someuser" -d "password=somepass" https://oursite/a
curl -b cookie.txt https://oursite/b

এটি কাজ করে কিনা ধারণা নেই তবে এটি আপনাকে সঠিক দিকে নিয়ে যেতে পারে।


9
আপনার যদি এমন কোনও ওয়েবসাইট থাকে যা কোনও ফর্ম জমা দেওয়ার আশা করে তবে এটি কাজ করবে। আপনাকে উত্সটি দেখতে হবে এবং <for> চিত্রটি খুঁজে বের করতে হবে এবং ক্ষেত্রগুলির নাম কী এবং URL এ কী পোস্ট করতে হবে তা দেখতে হবে। পোস্টের অনুরোধটি সন্ধান করতে আপনি আপনার ওয়েব ব্রাউজার ডিবাগারটি ব্যবহার করতে পারেন যাতে আপনি কী পাঠানো হচ্ছে তা দেখতে পারেন। এটা একটু সহজ।
স্টোনফুরি 18

0

আমার উত্তরটি @ জোমিলস এবং @ ব্যবহারকারীর কাছ থেকে প্রাপ্ত কিছু পূর্ববর্তী উত্তরগুলির একটি মোড।

  1. cURLসার্ভারে লগ ইন করার জন্য একটি আদেশ পান :

    • ওয়েবসাইটের জন্য লগইন পৃষ্ঠা লোড করুন এবং বিকাশকারী সরঞ্জামগুলির নেটওয়ার্ক ফলকটি খুলুন
      • ফায়ারফক্সে ডান ক্লিক পৃষ্ঠায় 'ইন্সপেক্ট এলিমেন্ট (কিউ)' নির্বাচন করুন এবং নেটওয়ার্ক ট্যাবে ক্লিক করুন
    • লগইন ফর্মে যান, ব্যবহারকারীর নাম, পাসওয়ার্ড লিখুন এবং লগ ইন করুন
    • আপনি লগ ইন করার পরে, নেটওয়ার্ক ফলকে ফিরে যান এবং POST এন্ট্রি সন্ধান করতে শীর্ষে স্ক্রোল করুন। ডান ক্লিক করুন এবং অনুলিপি -> সিআরএল হিসাবে অনুলিপি নির্বাচন করুন
    • এটি কোনও পাঠ্য সম্পাদককে আটকান এবং এটি কাজ করে কিনা তা দেখার জন্য কমান্ড প্রম্পটে এটি চেষ্টা করুন
      • এটি সম্ভব যে কোনও কোনও সাইটের কঠোরতা রয়েছে যা এই ধরণের লগইন স্পোফিকে ব্লক করে দেবে যাতে বাইপাস করতে নীচে আরও পদক্ষেপের প্রয়োজন হবে।
  2. লগইন করার পরে সেশন কুকি সংরক্ষণ করতে সক্ষম হতে সিআরএল কমান্ডটি পরিবর্তন করুন

    • এন্ট্রি সরান -H 'Cookie: <somestuff>'
    • curlশুরুতে পরে যুক্ত করুন-c login_cookie.txt
    • এই আপডেট হওয়া কার্ল কমান্ডটি চালনার চেষ্টা করুন এবং আপনার 'login_cookie.txt'একই ফোল্ডারে একটি নতুন ফাইল পাওয়া উচিত
  3. এই নতুন কুকিটি ব্যবহার করে একটি নতুন ওয়েব পৃষ্ঠা কল করুন যার জন্য আপনাকে লগ ইন করতে হবে

    • curl -b login_cookie.txt <url_that_requires_log_in>

আমি এটি উবুন্টু 20.04 এ চেষ্টা করেছি এবং এটি একটি কবজির মতো কাজ করে।

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