PHP cURL কি দর্শনার্থীর IP ব্যবহার করতে পারে?
সার্ভার-সাইড cURL সংযোগ কোন মেশিন খোলে এবং প্রক্সিকে সেই পথ বদলাতে কী প্রয়োজন, তা ব্যাখ্যা করুন।
একজন দর্শনার্থী একটি বোতাম ক্লিক করেন। আপনার PHP সার্ভার একটি বাহ্যিক API কল করে। API সার্ভারের বহির্গামী সংযোগ, বা সেই সংযোগের জন্য কনফিগার করা প্রক্সির প্রস্থান দেখে। দর্শনার্থীর ব্রাউজার আপনার ওয়েবসাইটে একটি আলাদা সংযোগ পরিচালনা করছে।
দর্শনার্থীর ঠিকানা একটি হেডারে কপি করলে PHP সংযোগটি দর্শনার্থীর নেটওয়ার্কে সরাতে পারে না। হেডার হলো ইতিমধ্যে প্রতিষ্ঠিত সংযোগের ওপর পাঠানো ডেটা। একটি গন্তব্য তার নিজের অ্যাপ্লিকেশন লজিকে বিশ্বস্ত ফরওয়ার্ডিং হেডার ব্যবহার করতে পারে, কিন্তু তা হেডারের মানকে সংযোগের উৎস ঠিকানায় পরিণত করে না।
প্রক্সিকে সংযোগ গ্রহণ করতে হবে
PHP cURL অন্য একটি মেশিনের মধ্য দিয়ে পাঠাতে হলে সেই মেশিনকে অনুরোধ বহনের অনুমতিসহ একটি পৌঁছানোযোগ্য প্রক্সি সেবা দিতে হবে। PHP প্রক্রিকে তার সাথে সংযোগ করতে সক্ষম হতে হবে। দর্শনার্থীর সাধারণ ব্রাউজার সেশন আপনার সার্ভারকে এমন সাধারণ-উদ্দেশ্য প্রক্সি এন্ডপয়েন্ট দেয় না।
libcurl প্রক্সি অপশনটি cURL যে সেবায় সংযোগ করে তা নির্বাচন করে। এটি ইচ্ছামতো কোনো ব্রাউজারকে তার পক্ষে অনুরোধ শুরু করতে বলতে পারে না।
ব্রাউজার অনুরোধ ভিন্ন নকশা
কিছু API-এর জন্য ব্রাউজার সরাসরি গন্তব্যে কল করতে পারে। এটি অনুরোধটিকে ব্যবহারকারীর নেটওয়ার্ক পথে রাখে, তাদের নিজস্ব প্রক্সি কনফিগারেশনের অধীনে। এটি ব্রাউজার ক্লায়েন্টের জন্য ডিজাইন করা API-ও প্রয়োজন। ক্রস-অরিজিন অ্যাক্সেস CORS অনুসরণ করে, এবং ব্রাউজার কোডে পাঠানো ক্রেডেনশিয়াল সেই ক্লায়েন্টের জন্য উপলব্ধ হয়।
প্রক্সি অপশন বাছাই করার আগে অনুরোধটি কোথায় থাকা উচিত তা নির্ধারণ করুন। সার্ভারের ক্রেডেনশিয়াল সার্ভারেই রাখুন; সেবা সমর্থন করলে একটি নথিভুক্ত ব্রাউজার ইন্টিগ্রেশন ব্যবহার করুন। কোনো নকশাই সার্ভার অনুরোধকে দর্শনার্থীর নেটওয়ার্ক পরিচয় উত্তরাধিকার করতে দেওয়ার নির্ভরযোগ্য শর্টকাট দেয় না।