কেন কার্ল এবং উইজেটের ফলাফল 403 নিষিদ্ধ হবে?


57

আমি সহ একটি ফাইল ডাউনলোড করার চেষ্টা wgetএবং curlএবং এটি একটি 403 ত্রুটি (নিষিদ্ধ) সঙ্গে প্রত্যাখ্যাত হয়।

আমি একই মেশিনে ওয়েব ব্রাউজার ব্যবহার করে ফাইলটি দেখতে পারি।

আমি আমার ব্রাউজারের ব্যবহারকারী এজেন্টের সাথে আবার চেষ্টা করি, http://www.whatsmyuseragent.com দ্বারা প্রাপ্ত । আমি এটা করি:

wget -U 'Mozilla/5.0 (X11; Linux x86_64; rv:30.0) Gecko/20100101 Firefox/30.0' http://...

এবং

curl -A 'Mozilla/5.0 (X11; Linux x86_64; rv:30.0) Gecko/20100101 Firefox/30.0' http://...

তবে এটি এখনও নিষিদ্ধ। 403 এর জন্য আর কোন কারণ থাকতে পারে এবং সেগুলি থেকে উত্তরণের জন্য আমি কী কী উপায়ে আদেশগুলি wgetএবং curlআদেশগুলিকে পরিবর্তন করতে পারি ?

(এটি ফাইল পেতে সক্ষম হওয়া সম্পর্কে নয় - আমি জানি আমি কেবল এটি আমার ব্রাউজার থেকে সংরক্ষণ করতে পারি; কমান্ড-লাইন সরঞ্জামগুলি কেন আলাদাভাবে কাজ করে তা বোঝার বিষয়ে)

হালনাগাদ

এই প্রশ্নের উত্তরে দেওয়া সমস্ত দুর্দান্ত উত্তরের জন্য ধন্যবাদ। যে নির্দিষ্ট সমস্যাটির মুখোমুখি হয়েছিল তা হ'ল সার্ভারটি রেফারারটি পরীক্ষা করছে checking কমান্ড-লাইনে এটি যুক্ত করে আমি curlএবং ব্যবহার করে ফাইলটি পেতে পারি wget

যে সার্ভারটি রেফারারকে চেক করেছে সেগুলি 302 এর মাধ্যমে অন্য কোনও স্থানে বাউন্স করেছে যা কোনও চেকই করেনি, সুতরাং সেই সাইটের কোনও curlবা একটি wgetপরিষ্কারভাবে কাজ করেছিল।

যদি কেউ আগ্রহী হন তবে এটি এম্বেড হওয়া সিএসএস সম্পর্কে জানতে এই পৃষ্ঠাটি পড়ছিলাম এবং উদাহরণের জন্য সাইটের সিএসএসে দেখার চেষ্টা করছিলাম কারণ এটি ঘটেছে। প্রকৃত URL টি আমি কষ্ট পেয়ে ছিল এই এবং curlআমি শেষ পর্যন্ত সঙ্গে

curl -L -H 'Referer: http://css-tricks.com/forums/topic/font-face-in-base64-is-cross-browser-compatible/' http://cloud.typography.com/610186/691184/css/fonts.css

এবং উইজেট হয়

 wget --referer='http://css-tricks.com/forums/topic/font-face-in-base64-is-cross-browser-compatible/' http://cloud.typography.com/610186/691184/css/fonts.css

অনেক আগ্রহব্যাঞ্জক.


7
পৃষ্ঠাগুলি যা রেফারার চেক করে সত্যই বিরক্তিকর। শিরোনামটি alচ্ছিক এবং পরিসংখ্যান সংগ্রহের জন্য ব্যবহৃত বলে মনে করা হচ্ছে।
জাডেহে

সবচেয়ে সহজ জিনিসটি আমি খুঁজে পেলাম এটি একটি জিপ ফাইলে রূপান্তর করা এবং সেভাবে ব্যবহার করা।
পিনিয়িনি

উত্তর:


40

এইচটিটিপি অনুরোধে আরও বেশি শিরোনাম থাকতে পারে যা কার্ল বা উইজেটের দ্বারা সেট করা হয়নি। উদাহরণ স্বরূপ:

  • কুকি: এই কারণেই কোনও অনুরোধ প্রত্যাখ্যান করা হবে, ডাউনলোড সাইটগুলিতে এটি ঘটতে দেখেছি। একটি কুকি দেওয়া key=val, আপনি এটিকে -b key=val(বা --cookie key=val) বিকল্পের জন্য সেট করতে পারেন curl
  • রেফারার (sic): একটি ওয়েব পৃষ্ঠায় একটি লিঙ্ক ক্লিক করার সময়, বেশিরভাগ ব্রাউজারগুলি বর্তমান পৃষ্ঠাটিকে রেফার হিসাবে প্রেরণ করে। এটির উপর নির্ভর করা উচিত নয়, তবে এই শিরোনামটি অনুপস্থিত থাকলেও ইবে কোনও পাসওয়ার্ড পুনরায় সেট করতে ব্যর্থ হয়েছিল। হ্যাঁ, এটি হতে পারে। এর curlজন্য বিকল্পটি -e URLএবং --referer URL
  • অনুমোদন: ব্যবহারকারীর নাম / পাসওয়ার্ড কথোপকথনের অনিয়ন্ত্রিত UI এর কারণে এখন এটি কম জনপ্রিয় হয়ে উঠছে, তবে এটি এখনও সম্ভব। এটি (বা ) বিকল্পের curlসাহায্যে সেট করা যেতে পারে ।-u user:password--user user:password
  • ব্যবহারকারী-এজেন্ট: কিছু অনুরোধগুলি ব্যবহারকারী এজেন্টের উপর নির্ভর করে বিভিন্ন প্রতিক্রিয়া অর্জন করবে। এটি একটি ভাল উপায়ে (আয়নাগুলির তালিকার চেয়ে প্রকৃত ডাউনলোড সরবরাহ করা) বা খারাপ উপায়ে ব্যবহার করা যেতে পারে (ব্যবহারকারী এজেন্টদের প্রত্যাখ্যান করুন যা দিয়ে শুরু হয় না Mozilla, বা থাকে Wgetবা থাকে curl)।

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

এই শিরোলেখগুলি ছাড়াও, ওয়েবসাইটগুলি পরিস্থিতি পরিবর্তনের পর্দার পিছনে কিছু ক্রিয়াও ট্রিগার করতে পারে। উদাহরণস্বরূপ, কোনও পৃষ্ঠা খোলার সময়, ডাউনলোড লিঙ্কটি প্রস্তুত করার জন্য পটভূমিতে একটি অনুরোধ সম্পাদন করা সম্ভব। বা পৃষ্ঠায় একটি পুনর্নির্দেশ ঘটে। এই ক্রিয়াগুলি সাধারণত জাভাস্ক্রিপ্ট ব্যবহার করে তবে এই ক্রিয়াগুলির সুবিধার্থে কোনও গোপন ফ্রেমও থাকতে পারে।

যদি আপনি খুঁজছেন একটি পদ্ধতি সহজেই একটি ডাউনলোড সাইট থেকে ফাইল আনতে জন্য, plowdown কটাক্ষপাত, সঙ্গে অন্তর্ভুক্ত আছে plowshare


আর একটি সত্যই বিকৃত সম্ভাবনা হ'ল যে কোনও কারণে সার্ভারটি সাফল্যের সাথে 200 এর পরিবর্তে 403 ফেরত দিতে কনফিগার করা হয়েছিল।
ক্যাস্পারড

1
এটি আমার প্রয়োজনীয় ক্লুটি দিয়েছে। কুকিজ চেষ্টা করার পরে, আমি
রেফারারকে

2
এটা করা হয়, তাহলে এখনও ব্যর্থ মধ্যে wgetচেষ্টা যোগ --auth-no-challenge। ম্যাজিকের মতো কাজ করে।
জোনাথন

13

কেবলমাত্র উপরের উত্তরগুলিতে যুক্ত করতে চান যে আপনি ক্রোম বিকাশকারী সরঞ্জামগুলিতে উপস্থিত "সিআরএল হিসাবে অনুলিপি করুন" বৈশিষ্ট্যটি ব্যবহার করতে পারেন (v26.0 থেকে) এবং ফায়ারব্যাগ ( v1.12 থেকে )। আপনি নেটওয়ার্ক ট্যাবে অনুরোধ সারিটিতে ডান-ক্লিক করে এই বৈশিষ্ট্যটি অ্যাক্সেস করতে পারেন।


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

1
@ স্টারফ্রাই আপনাকে Enable persistent logsফায়ারফক্সের ডেভ সরঞ্জামগুলির সেটিংস ট্যাবে টিক চিহ্ন দেওয়া দরকার যাতে এটি কোনও পুনঃনির্দেশে নেটওয়ার্ক লগগুলি সাফ করার থেকে রোধ করে। ক্রোমের একটি অনুরূপ বিকল্প রয়েছে। ঘটনাক্রমে, "সিআরএল হিসাবে অনুলিপি করুন" ফায়ারফক্স নাইটলি / অররা / বিটাতে কিছু সময়ের জন্য রয়েছে এবং পরবর্তী বড় রিলিজ হবে (৩১.০)।
বব

9

উপরের সমস্ত চেষ্টা করে তবে ভাগ্য নেই; ব্যবহারকারী-এজেন্ট স্ট্রিং পেতে ডেভ ব্রাউজার সরঞ্জাম ব্যবহার করেছেন, একবার আমি নিম্নলিখিতটি যোগ করেছি, সাফল্য:

--user-agent="Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"

5

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

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

wgetকুকিগুলির সাথে কাজ করতে পারে তবে এটি সম্পূর্ণ বিপর্যয়কর, কারণ এটি কোনও কুকিজ প্রেরণ করে না এমন ইঙ্গিত দেয় না। আপনার সেরা বাজি হ'ল আপনার ব্রাউজার থেকে সম্পর্কিত সমস্ত কুকিজ অপসারণ করা এবং যে কোনও প্রারম্ভিক লগইন বা পৃষ্ঠা দেখার ক্রম যা লাগে তা পেরে যান। কুকিজের জন্য এবং কোনও পোস্ট বা জিইটি প্যারামিটারের জন্য "লাইভ এইচটিটিপি শিরোনাম" দেখুন। wget"- কিপশন-সেশন-কুকিজ" এবং "- সেভ-কুকিজ" বিকল্পগুলি ব্যবহার করে প্রথম লগইন পদক্ষেপটি করুন। এটি আপনাকে একটি কুকি ফাইল দেবে যা আপনি কোনও পাঠ্য সম্পাদক দিয়ে দেখতে পারেন। ব্যবহার করুন wget --load-cookiesপরবর্তী পদক্ষেপসমূহ জন্য কুকি ফাইলের সাথে।


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

1
ঘটনাচক্রে, আপনি কোনও অ্যাডন ছাড়াই প্রেরিত এবং প্রাপ্ত কুকিজগুলি পরীক্ষা করতে ফায়ারফক্সের ডেভ সরঞ্জামগুলির নেটওয়ার্ক ট্যাবটি ব্যবহার করতে পারেন। ক্রোম / ক্রোমিয়ামের জন্য ডিটো।
বব

@ বব - হ্যাঁ আমি এটি খুঁজে পেয়েছি। এটি কিছু না হয়ে আমার কয়েক মিনিট সময় নিয়েছিল। ফায়ারব্যাগের এখন সিআরএল হিসাবে অনুলিপি রয়েছে তবে এটি স্থানীয় সরঞ্জামগুলিও দেখতে ভাল লাগবে।
স্টারফাই

1

এই ঘটনার আর একটি কারণ যদি সাইটের এসএসএল প্রয়োজন হয়। আপনার ব্রাউজারটি স্বয়ংক্রিয়ভাবে HTTP থেকে HTTPS এ ফরোয়ার্ড হবে তবে কার্ল এবং উইজেট হবে না w সুতরাং অনুরোধটি এইচটিটিপিএসের পরিবর্তে এইচটিটিপিএস দিয়ে চেষ্টা করুন।


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