অ্যাপাচি: সুরক্ষিত বন্দরে অনিরাপদ অনুরোধ প্রেরণ করা হয়েছে ... পুনর্নির্দেশ করতে চান


9

মুখবন্ধ

প্রথমত: একটি সাধারণ পোর্ট 80 -> পোর্ট 443 পুনর্লিখন এটি ঠিক করবে না । প্রায় প্রতিটি পূর্ববর্তী প্রশ্নে, মেল থ্রেড, ফোরাম থ্রেড, ইত্যাদিতে, আমি এটি প্রথম অজ্ঞ প্রতিক্রিয়া পেয়েছি এবং বেশ কয়েকবার তৃপ্ত হয়েছিল।

দ্বিতীয়ত: হ্যাঁ আমি জানি আপনি একই বন্দরে এইচটিটিপি এবং এইচটিটিপিএস ট্র্যাফিক পরিবেশন করতে পারবেন না। এটি যে না।

দৃশ্যপট:

অ্যাপাচি সার্ভার পোর্ট গুণনের মাধ্যমে একাধিক সাইট হোস্ট করছে। পোর্ট 80 একটি পাবলিক সাইট পরিবেশন করে। পোর্ট 443 সেই সাইটের সুরক্ষিত সংস্করণ পরিবেশন করে।

পোর্টগুলি 7443, 8443, এবং 9443 প্রতিটি পৃথক SSL- সুরক্ষিত সাইট পরিবেশন করে serve

যদি কোনও ব্যবহারকারী ইউআরএলটি ভুল টাইপ করে, বা কোনও লিঙ্ক দেওয়া হয় যা বৈধ নয়, তবে http: //hostname.tld: 7443 বলুন , তাদেরকে নিম্নলিখিত হাস্যকর পৃষ্ঠা দেওয়া হয়েছে:

অ্যাপাচি খারাপ অনুরোধ ত্রুটি বার্তা

সার্ভারের পরিবর্তে কেবল সেগুলি https: //hostname.tld: 7443 এ পুনর্নির্দেশ করা হচ্ছে ।

আমার প্রশ্ন হ'ল জিউসের বুথোলের নামে আপনি কীভাবে আপাচের আচরণ বা ব্যবহারকারীকে স্বয়ংক্রিয়ভাবে পুনঃনির্দেশিত করতে এই ত্রুটি বার্তাটি পরিবর্তন করতে পারবেন?

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

হালনাগাদ:

আমি সহ বিভিন্ন ধরণের জিনিস চেষ্টা করেছি:

  • ErrorDocument 400কোনও সিজিআই এবং একটি পিএইচপি স্ক্রিপ্টে পৌঁছানোর জন্য নির্দেশনা ব্যবহার করে যা কেবল পাঠান Status 301এবং Locationশিরোনাম। এটি ফাঁকা পৃষ্ঠাতে ফলাফল। ErrorDocument 400 https://hostname.tld:7443সেই লিঙ্কটিতে কেবল ফলাফলের ব্যবহার পৃষ্ঠাতে প্রদর্শিত হচ্ছে।

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

কাস্টম পোর্ট ব্যবহারের কারণে আমি পোর্ট ভিত্তিক পুনঃনির্দেশগুলি ব্যবহার করতে পারি না। আমি স্ক্রিপ্ট-ভিত্তিক পুনঃনির্দেশগুলি ব্যবহার করতে পারি না কারণ তারা কখনই HTTP / https অমিলের কারণে পরিবেশিত হয় না। আমি এটিকে একটি বাগ বা অনিচ্ছাকৃত আচরণের জন্য চক করতে ইচ্ছুক, তবে কেউ একজন খুব কাস্টম ত্রুটি বার্তা সেখানে রাখার পূর্বাভাস রেখেছিল, তারা এই ভেবে উদ্রেক করেনি যে সম্ভবত আপনি কেবল কার্ট করতে চান তারা ইতিমধ্যে সরবরাহ করছে ইউআরএল ?



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

2
লিঙ্কযুক্ত ভিডিওটির জন্য উত্সাহিত করুন, এটি আমার সংবেদনগুলি পুরোপুরি জানায়
মিশেল বি

উত্তর:


6

আমি মনে করি এটি অ্যাপাচি ২.২ এবং নিম্নতর কীভাবে এই নির্দিষ্ট পরিস্থিতিতে পরিচালনা করে তার মধ্যে এটি একটি বাগ।

দেখে মনে হচ্ছে কোনও এসএসএল পড়ার 400 Bad Requestত্রুটিতে, অ্যাপাচি ২.২ HTTP প্রতিক্রিয়া কোড বা শিরোনামগুলি প্রদান করে না, কেবলমাত্র HTTP প্রতিক্রিয়া বডি। আমি 443 পোর্টে টেলনেট করে প্রেরণ করে পরীক্ষা করছি:

GET / HTTP/1.1

সার্ভারটি তাত্ক্ষণিকভাবে ফিরে আসে (আমার জন্য):

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
Reason: You're speaking plain HTTP to an SSL-enabled server port.<br />
Instead use the HTTPS scheme to access this URL, please.<br />
<blockquote>Hint: <a href="https://server.tld/"><b>https://server.tld/</b></a></blockquote></p>
</body></html>

কোনও HTTP প্রতিক্রিয়া কোড বা কোনও HTTP শিরোনামের অভাব নোট করুন।

আমি যখন এটি অ্যাপাচি ২.৪ সার্ভারে করি তখন আমি পাই:

HTTP/1.1 400 Bad Request
Date: Sun, 10 Feb 2013 00:47:23 GMT
Server: Apache/2.4.3 (Unix) OpenSSL/1.0.0g
Content-Length: 462
Connection: close
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
Reason: You're speaking plain HTTP to an SSL-enabled server port.<br />
Instead use the HTTPS scheme to access this URL, please.<br />
</p>
<hr>
<address>Apache/2.4.3 (Unix) OpenSSL/1.0.0g Server at server.tld Port 443</address>
</body></html>

যদি আমি আপনার মতো একটি ত্রুটিযুক্ত ডকুমেন্ট লাইন সেটআপ করি:

ErrorDocument 400 https://server.tld/

তারপরে আমি 302 টি পুনর্নির্দেশের জন্য এইচটিএমএল পেয়েছি তবে আবার কোনও শিরোলেখ নেই। 302 পুনর্নির্দেশ প্রতিক্রিয়া কোড এবং Location:শিরোনাম ছাড়া, ব্রাউজারটি পুনঃনির্দেশ করবে না।

অ্যাপাচি ২.৪ এ আপগ্রেড করার চেষ্টা করুন এবং দেখুন এটি কার্যকর হয় কিনা। আমি কমপক্ষে অ্যাপাচি ২.৪.৩ দিয়ে পরীক্ষা করেছি এবং নিশ্চিত করেছি, তবে কখন এই আচরণটি আপডেট হয়েছিল তা ঠিক অনুসন্ধানের চেষ্টা করেও যাই নি। আমার সন্দেহ হয় যে তারা প্রচুর পরিমাণে 2.4 প্রস্তুতির কাজ করেছে, তারা একটি অনিবার্য আচরণকে পার্শ্ব-প্রতিক্রিয়া হিসাবে সংশোধন করেছে।

প্রাসঙ্গিক অ্যাপাচি httpd বাগগুলি:

হালনাগাদ

আপনি কোনও বাগি অ্যাপাচি বাধ্য করতে পারেন আপনার আচরণটি (পুনর্নির্দেশ) দিয়ে স্ক্রিপ্টটি এর শিরোনাম (যা ক্লায়েন্টের কাছে প্রেরণ করা হবে না) মুদ্রণ করে এবং নিজেই আবার আপনি যে শিরোনাম চান তা মুদ্রণ করে। এখানে একটি প্রাথমিক পার্ল স্ক্রিপ্ট যা অ্যাপাচি ২.২.২২ এর অধীনে কাজ করে:

#!/usr/bin/perl

use strict;
use CGI;

my $q = CGI->new();

# this will cause Apache to handle the response properly, but is meaningless otherwise
print $q->redirect("https://localhost/");

# this actually performs the redirect
print "HTTP/1.1 302 Found\r\n";
print "Location: https://localhost/\r\n";
print "\r\n";

# you can do whatever you want here; this will be the HTML body

আপনার সচেতন হওয়া উচিত যে এসএসএল ব্যতীত কোনও এসএসএল পোর্টের সাথে কথা বলার পাশাপাশি আরও 400 টি উত্পন্ন হতে পারে। এটি নির্ধারণের সহজ উপায় হ'ল HTTPSপরিবেশের পরিবর্তনশীল সন্ধান করা। যদি এটি সেট করা থাকে, তবে এসএসএলকে যথাযথভাবে আলোচনা করা হয়েছিল এবং অন্য কিছু 400 এর কারণ ঘটছে (যদি কেসটি হয় তবে ডাবল শিরোনাম কৌশলটি করবেন না)। যদি HTTPSসেট না করা থাকে তবে উপরের মত আপনার পুনর্নির্দেশকে ফিরিয়ে দিন।


1
পবিত্র. বিষ্ঠা। নিখুঁত উত্তর. এবং Gracias।
পিলম্যান

আপনি জানেন, আমি এটি পড়ার সাথে সাথে আমি নিজেকে মনে করি, "ম্যান, এটি যদি আপনার অ্যাপাচি ২.২ থাকে এবং সত্যিই আপনি এই ধরণের পুনর্নির্দেশিত আচরণ চান তবে এটি চুষে পায়।" আমি আমার উবুন্টু সিস্টেমের জন্য উপযুক্ত অ্যাপাচি ২.৪ দেব (বা আমার নিজের তৈরি করা) সন্ধানের চেষ্টাটি করতে যাচ্ছি না। আমি বাজি ধরছি আপনি নিজের পিএইচপি স্ক্রিপ্ট থেকে কোনও সমাধান হ্যাক করতে পারেন। অ্যাপাচি স্পষ্টভাবে ক্লায়েন্টের কাছে আউটপুট ডাম্প করছে, সুতরাং আপনি যদি নির্দিষ্ট প্রত্যাশিত সামগ্রীটি ফেরত দেন তবে আমি বাজি ধরছি আপনি অ্যাপাচি আপগ্রেড না করে যে আচরণটি সন্ধান করছেন তা পেতে পারেন। আপনার পিএইচপি স্ক্রিপ্ট প্রিন্ট করার চেষ্টা করুন "HTTP / 1.1 302 পাওয়া গেছে \ r \ n অবস্থান: server.tld \ r \ n \ r \ n"।
4'17

সমস্যাটি হ'ল পিএইচপি স্ক্রিপ্টটি প্রক্রিয়াধীন হচ্ছে বলে মনে হয় না। আমার লক্ষ্য করা উচিত যে এটি উবুন্টু সার্ভার 12.04-এ অ্যাপাচি ২.২.২২ এ বসে আছে। এবং হ্যাঁ, এটি সত্যিই, সত্যিই স্তন্যপান; বিশেষত যখন আপনি লক্ষ্য করেন যে এই বাগের প্রতিবেদনে, তারা কেবল স্বয়ংক্রিয়ভাবে পুনঃনির্দেশ করার জন্য একটি বিকল্প সরবরাহ করার বিরুদ্ধে সম্পূর্ণরূপে সেট আপ হয়েছে বলে মনে হয় এবং খুব বেশি আশা করা যায় না যে ২.২ কখনও ঠিক হয়ে যাবে।
পিলম্যান

1
এবং যেমনটি আমি উপরে বলেছি, এটি কেবল আমার বোঝার মতো নয় যে আপনি ত্রুটি বার্তাটি লেখার জন্য কেন সুরক্ষায় পুনঃনির্দেশ না করে (গম্ভীরভাবে, কেন কেবল পুনর্নির্দেশ করবেন না?) আমি যতই কম চিন্তা করি তত কম আমি মনে করি এটি একটি খারাপ ধারণা)।
পিলম্যান

1
রক্তাক্ত বার্তাটির পাঠ্য সন্ধান করার জন্য আমি পুরো ফাইল সিস্টেমটি গ্রেপ্ত করে দিয়েছি তা দেখার জন্য যে তারা কোথায় থেকে এলোমেলো করছে আমি তা করতে পারি, অফ সুযোগে আমি একটি <javascriptট্যাগ ইনজেক্ট করতে পারি এবং সেইভাবে হ্যাকিং পুনঃনির্দেশের সাথে ভাগ্যবান হয়ে উঠতে পারি , তবে এখনও পর্যন্ত, না ছক্কা. এ সম্পর্কে কিছুই এমনভাবে পরিচালিত হচ্ছে না যা অন্যথায় বেশ কঠোর অ্যাপাচি অসাধারণতার অনুসরণ করে ...
পিলম্যান

-1

আপনি এটি মোড-পুনরায় লেখার মাধ্যমে ঠিক করতে পারেন। যে কোনও কিছুর সাথে মিলের জন্য একটি বিধি সেট করুন। এই উত্তরটি স্ট্যাকওভারফ্লোতে দেখুন


নাহ, আমি ইতিমধ্যে এটি চেষ্টা করেছি, এটি কাজ করে না। এটি এর মতো এটি এমনকি ModRewrit ধাপেও পায় না কারণ এটির প্রথমে http / https টি মিলছে না।
পিলম্যান

এইচআরএম তাই আমি ধরে নিচ্ছি আপনি আপনার অ্যাপাচি কনফিগারেশন ফাইলটি উপরে থেকে শুরু করেছেন এবং এটি কী কল করছে তা দেখার জন্য আপনার পথে কাজ করেছেন
ট্রেন্ট

আমি কার্যত পুরো sites-availableডিরেক্টরি মুখস্থ করেছি । এমনকি যদি আপনি এটিকে কেবল আজেবাজে পুনঃনির্দেশ করেন, বা এটি কোনও অন্য সাইট, ভিন্ন বন্দর ইত্যাদিতে পুনর্নির্দেশ করেন, এটি কেবল 400 টির অনুরোধ অনুরোধটি লোড করে রাখে।
পিলম্যান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.