এটি করার একমাত্র নিরাপদ উপায়
এই পৃষ্ঠাগুলির অন্যান্য সমস্ত উত্তরগুলির মধ্যে সুরক্ষা সম্পর্কিত প্রভাব রয়েছে যা সম্পর্কে আপনাকে সচেতন হওয়া দরকার।
বর্তমান ডোমেনটি পুনরুদ্ধারের একমাত্র গ্যারান্টিযুক্ত নিরাপদ পদ্ধতি
হয় 𝓪 𝓼𝓮𝓬𝓾𝓻𝓮 𝓵𝓸𝓬𝓪𝓽𝓲𝓸𝓷 𝔂𝓸𝓾𝓻𝓼𝓮𝓵𝓯 𝓲𝓷 𝓲𝓽 𝓼𝓽𝓸𝓻𝓮।
বেশিরভাগ ফ্রেমওয়ার্ক আপনার জন্য ডোমেন সংরক্ষণের যত্ন নেয়, তাই আপনি আপনার নির্দিষ্ট কাঠামোর জন্য ডকুমেন্টেশনের সাথে পরামর্শ করতে চাইবেন। আপনি যদি কোনও ফ্রেমওয়ার্ক ব্যবহার না করে থাকেন তবে নীচের জায়গাগুলির একটিতে ডোমেনটি সংরক্ষণ করার কথা বিবেচনা করুন:
+ + ------------------------------------------------- --- + ----------------------------------- +
| ডোমেন সংরক্ষণের নিরাপদ পদ্ধতি | দ্বারা ব্যবহৃত |
+ + ------------------------------------------------- --- + ----------------------------------- +
| একটি কনফিগার ফাইল | জুমলা, দ্রুপাল / সিমফনি |
| ডাটাবেস | ওয়ার্ডপ্রেস |
| পরিবেশগত পরিবর্তনশীল | লারাভেল |
| একটি পরিষেবা রেজিস্ট্রি | কুবেরনেটস ডিএনএস |
+ + ------------------------------------------------- --- + + ----------------------------------- + +
আপনি নিম্নলিখিতগুলি ব্যবহার করতে পারেন ... তবে তারা নিরাপত্তাহীন
হ্যাকাররা এই ভেরিয়েবলগুলিকে যে কোনও ডোমেইনই চায় আউটপুট তৈরি করতে পারে। এটি ক্যাশে বিষক্রিয়া এবং সবে লক্ষণীয় লক্ষণীয় ফিশিং আক্রমণ হতে পারে।
$_SERVER['HTTP_HOST']
এটি হ্যাকারদের দ্বারা ম্যানিপুলেশনের জন্য উন্মুক্ত অনুরোধ শিরোনামগুলির কাছ থেকে ডোমেন পান । একই সাথে:
$_SERVER['SERVER_NAME']
অ্যাপাচি সেটিং ইউজকোনোনিকাল নাম বন্ধ করা থাকলে এটিকে আরও ভাল করা যায়; যা কেস $_SERVER['SERVER_NAME']
আর নির্বিচারে মান জনবহুল করার জন্য অনুমতি দেওয়া হবে না এবং নিরাপদ হতে হবে। এটি অবশ্য অ-ডিফল্ট এবং সেটআপের মতো সাধারণ নয়।
জনপ্রিয় সিস্টেমে
নীচের ফ্রেমওয়ার্ক / সিস্টেমে আপনি কীভাবে বর্তমান ডোমেনটি পেতে পারেন তা নীচে দেওয়া হল:
ওয়ার্ডপ্রেস
$urlparts = parse_url(home_url());
$domain = $urlparts['host'];
আপনি যদি ওয়ার্ডপ্রেসে কোনও ইউআরএল তৈরি করে থাকেন তবে কেবল হোম_আরল বা সাইট_আরল বা অন্য কোনও ইউআরএল ফাংশন ব্যবহার করুন ।
লারাভেল
request()->getHost()
request()->getHost
ফাংশন Symfony থেকে উত্তরাধিকারসূত্রে করা হয়, এবং নিরাপদ পর থেকে 2013 জন্য CVE-2013-4752 patched হয়।
Drupal এর
ইনস্টলার এখনও এই সুরক্ষিত করার বিষয়ে যত্ন নেন না ( সমস্যা # 2404259 ) 9 তবে ড্রুপাল 8-তে এমন নথি রয়েছে যা আপনি নিজের ড্রুপাল ইনস্টলেশনটি সুরক্ষিত করতে বিশ্বস্ত হোস্ট সেটিংসে অনুসরণ করতে পারেন যার পরে নিম্নলিখিতটি ব্যবহার করা যেতে পারে:
\Drupal::request()->getHost();
অন্যান্য ফ্রেমওয়ার্ক
আপনার পছন্দের কাঠামোর মধ্যে বর্তমান ডোমেনটি কীভাবে পাবেন তা অন্তর্ভুক্ত করার জন্য এই উত্তরটি সম্পাদনা করতে নির্দ্বিধায় অনুভব করুন। এটি করার সময়, দয়া করে প্রাসঙ্গিক উত্স কোডের বা অন্য যে কোনও কিছুতে একটি লিঙ্ক অন্তর্ভুক্ত করুন যা আমাকে ফ্রেমওয়ার্কটি সুরক্ষিতভাবে কাজ করছে তা যাচাই করতে সহায়তা করবে।
অভিযোজ্য বস্তু
শোষণের উদাহরণ:
যদি কোনও বোটনেট অবিচ্ছিন্নভাবে হোস্ট শিরোনাম ব্যবহার করে কোনও পৃষ্ঠার জন্য অনুরোধ করে তবে ক্যাশে বিষক্রিয়া ঘটতে পারে। ফলস্বরূপ এইচটিএমএল তখন আক্রমণকারীদের ওয়েবসাইটের লিঙ্কগুলি অন্তর্ভুক্ত করবে যেখানে তারা আপনার ব্যবহারকারীদের ফিশ করতে পারে। প্রথমে দূষিত লিঙ্কগুলি কেবল হ্যাকারের কাছে ফেরত পাঠানো হবে, তবে হ্যাকার যদি যথেষ্ট অনুরোধ করে তবে পৃষ্ঠার দূষিত সংস্করণটি আপনার ক্যাশে শেষ হবে যেখানে এটি অন্য ব্যবহারকারীর কাছে বিতরণ করা হবে।
হোস্ট শিরোনামের ভিত্তিতে আপনি যদি ডাটাবেসে লিঙ্কগুলি সঞ্চয় করেন তবে ফিশিং আক্রমণ হতে পারে। উদাহরণস্বরূপ, ধরুন যে আপনি কোনও ফোরামে কোনও ব্যবহারকারীর প্রোফাইলে পরম URL সংরক্ষণ করেন store ভুল শিরোলেখ ব্যবহার করে, একজন হ্যাকার যে কেউ তাদের প্রোফাইল লিঙ্কে ক্লিক করে তাকে ফিশিং সাইট প্রেরণ করতে পারে।
পাসওয়ার্ড পুনরায় সেট করার বিষক্রিয়া ঘটতে পারে যদি কোনও হ্যাকার কোনও অন্য ব্যবহারকারীর জন্য পাসওয়ার্ড পুনরায় সেট করার ফর্মটি পূরণ করার সময় দূষিত হোস্ট শিরোনাম ব্যবহার করে। সেই ব্যবহারকারী তখন একটি ইমেল পাবে যা একটি পাসওয়ার্ড রিসেট লিঙ্কযুক্ত যা কোনও ফিশিং সাইটের দিকে নিয়ে যায়।
এখানে আরও কিছু দূষিত উদাহরণ রয়েছে
অতিরিক্ত ক্যাভেট এবং নোট:
- যখন ইউজকোনোনিকাল নামটি বন্ধ করা হয়
$_SERVER['SERVER_NAME']
একই শিরোনাম দিয়ে$_SERVER['HTTP_HOST']
যাইহোক (প্লাস পোর্ট) ব্যবহার করা হত। এটি অ্যাপাচের ডিফল্ট সেটআপ। যদি আপনি বা ডিওপস এটি চালু করে থাকেন তবে আপনি ঠিক আছেন - ইশ - তবে কী আপনি একটি পৃথক দলের উপর নির্ভর করতে চান, বা ভবিষ্যতে নিজেকে তিন বছর ধরে রাখতে চান যা কোনও অল্পবয়স্ক কনফিগারেশন হিসাবে প্রদর্শিত হবে -ডিফল্ট মান? যদিও এটি জিনিসগুলিকে সুরক্ষিত করে, আমি এই সেটআপের উপর নির্ভর করার বিরুদ্ধে সাবধানতা অবলম্বন করব।
- Redhat, তবে, ডিফল্ট [ উত্স অনুসারে ব্যবহারকেনোনিকাল চালু করে ] ।
- যদি সার্ভারআলিয়াস ভার্চুয়াল হোস্ট এন্ট্রিতে ব্যবহৃত হয় এবং এলিয়াসড ডোমেনটির জন্য অনুরোধ করা হয়,
$_SERVER['SERVER_NAME']
তবে বর্তমান ডোমেনটি ফিরিয়ে দেবে না, তবে সার্ভারনাম নির্দেশিকার মানটি ফিরিয়ে দেবে।
- সার্ভারনামটি সমাধান করা না গেলে অপারেটিং সিস্টেমের হোস্টনেম কমান্ডটি তার জায়গায় ব্যবহার করা হয় [উত্স] ।
- হোস্ট শিরোনামটি যদি বাদ যায় তবে সার্ভারটি এমন ব্যবহার করবে যেমন ইউজকোনোনিকাল [উত্স] এ রয়েছে ।
- শেষ অবধি, আমি নিজের স্থানীয় সার্ভারে এটি ব্যবহারের চেষ্টা করেছি, এবং হোস্ট শিরোনামকে ফাঁকি দিতে ব্যর্থ হয়েছি। আমি নিশ্চিত নই যে আপাচে এর কোনও আপডেট রয়েছে যা এটিকে সম্বোধন করেছে, বা আমি যদি কিছু ভুল করছি। নির্বিশেষে, এই শিরোনামটি এখনও এমন পরিবেশে শোষণযোগ্য হবে যেখানে ভার্চুয়াল হোস্টগুলি ব্যবহৃত হচ্ছে না।
ছোট ভাড়া:
এই প্রশ্নটি হাতে থাকা সুরক্ষা সমস্যার একক উল্লেখ ছাড়াই কয়েক হাজার ভিউ পেয়েছে! এটি এমনভাবে হওয়া উচিত নয়, তবে কেবল একটি স্ট্যাক ওভারফ্লো উত্তর জনপ্রিয়, এর অর্থ এটি নিরাপদ নয়।