আমার আগের প্রবন্ধে , আমি টর ব্রাউজার দিয়ে চলমান একটি কালি লিনাক্স কন্টেইনার প্রদর্শন করতে সক্ষম হয়েছি এবং একটি VNC ক্লায়েন্টের সাথে এর ডেস্কটপ পরিবেশের সাথে সংযুক্ত। আমি যাচাই করেছি যে টর ব্রাউজার একটি ব্রাউজিং সেশনের সময় টর নেটওয়ার্কের সাথে সংযুক্ত ছিল। এই সেটআপটি আমাকে সেই ধরনের ট্রাফিকের অনুকরণ করার অনুমতি দেবে যা একটি ওয়েবসাইটকে লক্ষ্য করে আক্রমণকারীর কাছ থেকে আসতে পারে।
এই পরীক্ষায় আমি ব্রাউজারের ওয়েবড্রাইভার ইন্টারফেসের মাধ্যমে কীস্ট্রোক এবং নেভিগেশন ইভেন্টগুলিকে সংশ্লেষ করতে টর ব্রাউজারকে স্বয়ংক্রিয় করতে সেলেনিয়াম ব্যবহার করতে যাচ্ছি। প্রতিটি ক্রলারের সনাক্তকরণ এড়ানোর জন্য এমবেডেড টর প্রক্সি দ্বারা প্রদত্ত একটি র্যান্ডম আইপি ঠিকানা থাকবে। স্থানীয় ফাইল সিস্টেমে JSON অবজেক্ট হিসাবে ফলাফলগুলি সংরক্ষণ করার পরে, আমি একটি একক CSV ফাইলে প্রক্রিয়া করতে পাইথন ব্যবহার করব। পরিশেষে, বট কার্যকলাপ সনাক্তকরণ, হার সীমা এবং ব্লক করার চেষ্টা করার জন্য ডেটা সেন্টার এবং ক্লায়েন্ট সাইডে কোন পাল্টা ব্যবস্থা প্রয়োগ করা যেতে পারে তা আমি আলোচনা করব।
সমস্ত ফাইল এবং প্রযোজ্য লাইসেন্স এই ওপেন সোর্স রিপোজিটরিতে পাওয়া যায়: tor-driver-python
আমার পরীক্ষা অটোমেশনের একটি ব্যাকগ্রাউন্ড আছে, এবং পরীক্ষা ডিজাইন করতে অনেক ঘন্টা ব্যয় করেছি। আমি সেলেনিয়ামের সাথে কাজ করার জন্যও অনেক সময় ব্যয় করেছি, এবং আমি পরীক্ষার উদ্দেশ্যে ওয়েব ব্রাউজারগুলিকে স্বয়ংক্রিয় করতে বিভিন্ন প্রোগ্রামিং ভাষা এবং সেটিংসে এটি ব্যবহার করেছি। এমন পরিস্থিতি রয়েছে যেখানে শুধুমাত্র একটি বাস্তব ব্রাউজার দিয়ে একটি ওয়েব অ্যাপ্লিকেশন পরীক্ষা করা সম্ভব, এবং সেলেনিয়াম এটির জন্য একটি দুর্দান্ত সরঞ্জাম।
একজন DevOps ইঞ্জিনিয়ার হিসাবে আমার কাজ করার সময় আমি যে ওয়েব অ্যাপ্লিকেশনগুলির জন্য দায়বদ্ধ সেই ওয়েব ক্রলারগুলিকে আঘাত করছে এবং কখনও কখনও সরাসরি আক্রমণ করছে তাদের সাথে কী করা উচিত তা নিয়ে আমি খুব কম সময় ব্যয় করিনি৷ আমি ভেবেছিলাম একবারের জন্য এই সমস্যার অন্য দিকটি অন্বেষণ করা একটি আকর্ষণীয় পরীক্ষা হবে।
আমি দেখতে চাই যে আমি শিক্ষাগত উদ্দেশ্যে একটি বটনেট থেকে আক্রমণের অনুকরণের কতটা কাছাকাছি যেতে পারি এবং আধুনিক ডেটা সেন্টারে সন্দেহজনক টর নেটওয়ার্ক ট্র্যাফিকের মতো জিনিসগুলি মোকাবেলার পদ্ধতি নিয়ে আলোচনা করতে চাই৷ বটনেট সাধারণত ক্রেডেনশিয়াল স্টাফিং আক্রমণ করতে ব্যবহৃত হয়। আমি অনুসন্ধান অনুসন্ধান এবং ওয়েব থেকে তথ্য সংগ্রহ করতে একটি অনুরূপ কৌশল ব্যবহার করা হবে.
শংসাপত্র স্টাফিং হল ব্যবহারকারীর অ্যাকাউন্টে প্রতারণামূলকভাবে অ্যাক্সেস পাওয়ার জন্য, ওয়েবসাইট লগইন ফর্মগুলিতে চুরি করা ব্যবহারকারীর নাম এবং পাসওয়ার্ড জোড়া ("শংসাপত্র") স্বয়ংক্রিয়ভাবে ইনজেকশন। 1
নৈতিক বিষয়গুলি এড়ানোর জন্য, কাজের প্রতি সত্য থাকার চেষ্টা করার সময়। আমি দৃশ্যকল্পে নিম্নলিখিত পরিবর্তন করছি:
robots.txt
ফাইল সহ সাইটগুলিকে লক্ষ্য করে এবং লেখার সময় নিয়ম ও শর্তাবলী পরীক্ষা করা হয়েছিল যেগুলি ক্রল করা বাদ দেওয়া হবে না৷ যেমন IMDB-এর শর্তাবলী স্পষ্টভাবে লিখিত সম্মতি ছাড়া ক্রল করা নিষিদ্ধ করে।
রোবটস এক্সক্লুশন প্রোটোকল হল ওয়েবমাস্টারদের জন্য একটি উপায় যে তারা কোথায় আছে এবং তাদের তথ্য সংগ্রহ করার অনুমতি নেই। আরও তথ্য এবং উদাহরণ robotstxt.org ওয়েবসাইটে পাওয়া যাবে। আমি একটি নিবন্ধ পেয়েছি: অনুসন্ধান ফলাফল পৃষ্ঠায় ওয়েব স্ক্র্যাপ করার অনুমতি দেয় এমন একটি খুঁজে বের করার চেষ্টা করার সময় বিকল্প অনুসন্ধান ইঞ্জিনগুলির তালিকা ৷ নীচে সেই গবেষণার সারসংক্ষেপ দেওয়া হল।
খোঁজ যন্ত্র | robots.txt URL | ক্রলিং অনুমোদিত? |
---|---|---|
না, কিন্তু একটি এপিআই আছে | ||
না, কিন্তু একটি এপিআই আছে | ||
না | ||
না, কিন্তু একটি এপিআই আছে | ||
হ্যাঁ, কিন্তু আমি যা খুঁজছিলাম ঠিক তা নয় | ||
হ্যাঁ |
এই বিষয়ে গবেষণা করার সময় আমি দরকারী খুঁজে পেয়েছি এমন কিছু অন্যান্য সংস্থান:
আমি এই উদাহরণের জন্য সেলেনিয়াম ছাড়া অন্য লাইব্রেরি ব্যবহার এড়াতে যাচ্ছি। কিছু সত্যিকারের মৌলিক নিদর্শন রয়েছে যা আমি প্রদর্শন করতে চাই এবং আমি একটি নির্দিষ্ট ডোমেন স্পেসিফিক ল্যাঙ্গুয়েজ (DSL) এর সাথে আটকে থাকতে চাই না যা কি ঘটছে তা বোঝা কঠিন করে তুলতে পারে।
যাইহোক, আমি মনে করি একটি পরীক্ষা চলমান ফ্রেমওয়ার্ক ব্যবহার করে এই ধরনের কোড সংগঠিত করার একটি দুর্দান্ত উপায়। একটি ফ্রেমওয়ার্ক যোগ করলে সাধারণ কোড স্ট্রাকচার, লজিক আবার চেষ্টা করুন এবং এমনকি রিপোর্টিং এর আশেপাশে অনেক সমস্যার সমাধান হতে পারে।
ওয়েবড্রাইভার সেশনে আমি কীভাবে একটি পৃষ্ঠা ম্যানিপুলেট করতে যাই তার একটি মৌলিক প্যাটার্ন রয়েছে। আমি প্রতিটি কর্ম সঞ্চালিত পরে একটি বিরতি যোগ করুন. ব্রাউজার অটোমেশন ফ্লেকি হতে পারে। টাইমআউটগুলি ক্রলটিতে অনেক স্থিতিশীলতা যোগ করে এবং রেট সীমিত এবং অবরুদ্ধ হওয়ার সম্ভাবনাকে ব্যাপকভাবে সীমিত করে। যেখানেই প্রয়োজন, আমি অন্যান্য সার্চ ইঞ্জিন বা তথ্যের উত্সগুলিতে API কলগুলির সাথে ক্রলও বাড়িয়ে দিই৷
আমি নির্বাচকদের কাছে সত্যিই সহজ পন্থা নিয়েছিলাম। আমি ব্রাউজারে উপলব্ধ xpath এবং CSS নির্বাচক উভয়ই ব্যবহার করছি। একটি ক্রল করার সময় পৃষ্ঠাগুলির মধ্যে নেভিগেট করার জন্য প্রধানত অ্যাঙ্কর ট্যাগ এবং URL খণ্ডের চারপাশে ফোকাস করা।
আমি তাদের উপর ক্লিক করার চেষ্টা করার আগে উপাদান উপস্থিত থাকার জন্য অপেক্ষা করার জন্য প্রত্যাশিত শর্ত ব্যবহার করছি. সেলেনিয়াম প্রকল্পের প্রচুর ডকুমেন্টেশন রয়েছে, তবে আমি স্ট্যাক ওভারফ্লোতে উদাহরণ ব্যবহার সহ অপেক্ষার শর্তগুলি সম্পর্কে আলোচনাটি একটি অমূল্য সম্পদ হিসাবে খুঁজে পেয়েছি।
Tbselenium নামক একটি বিদ্যমান PyPi প্রকল্প রয়েছে যার একটি অনুরূপ ফাংশন রয়েছে। এই পরীক্ষার জন্য, আমি ফায়ারফক্স প্রোফাইল সেটআপ উল্লেখ করেছি, কিন্তু tbselenium-এর অন্তর্ভুক্ত অন্যান্য বৈশিষ্ট্যগুলির প্রয়োজন নেই। রুট অ্যাক্সেস না থাকা কন্টেইনারগুলির অতিরিক্ত জটিলতা ডিবাগিংকে আরও কঠিন করে তুলতে অবদান রাখছিল। এটি নির্ভরতা সীমিত করার প্রেরণা যোগ করেছে, এবং সহজ প্রাক-বিদ্যমান সমাধানগুলি চেষ্টা করছে। উদাহরণস্বরূপ, এমন অনেক জায়গা আছে যেখানে আমি সরাসরি বিশুদ্ধ পাইথন সমাধান বাস্তবায়নের পরিবর্তে লিনাক্স সরঞ্জাম এবং সাব-শেল ব্যবহার করছি।
সমাপ্ত ক্লাস পাইথনের প্রায় 150 লাইন। আমি মনে করি কম পর্যালোচনার সাথে গভীরভাবে কী ঘটছে তা বিশ্লেষণ করা সহজ হবে। টর ব্রাউজার লঞ্চার কিভাবে কাজ করে এবং কিভাবে ফায়ারফক্স প্রোফাইল কনফিগার করতে হয় সে সম্পর্কে আমি অনেক কিছু শিখেছি। এই প্রোফাইলটি অনলাইন একাধিক উত্স থেকে সংগ্রহ করা হয়েছে, এবং সেগুলি এই নথির পাশাপাশি উত্স কোডে উল্লেখ করা হয়েছে৷
আমি TorDriver
নামে একটি ক্লাসে স্টার্টআপ, টিয়ার ডাউন এবং নেভিগেশন লজিকের একটি খুব সাধারণ অংশকে বিমূর্ত করেছি। এটি একটি খুব সাধারণ ক্লাস যা টর ব্রাউজার লঞ্চারের সাথে একটি ফায়ারফক্স প্রোফাইল সেট আপ করে। পৃষ্ঠায় একটি উপাদান দৃশ্যমান কিনা তা পরীক্ষা করার জন্য এটির একটি পদ্ধতি রয়েছে এবং অন্যটি যা যাচাই করে প্রক্সি সকেট চালু এবং চলছে৷ ফায়ারফক্স প্রোফাইল সেটআপ এবং ডিবাগিং মূলত একটি স্ট্যাক ওভারফ্লো আলোচনার মাধ্যমে জানানো হয়েছিল: সেলেনিয়ামের সাথে টোর ব্রাউজার খুলুন ।
সম্পূর্ণ ফাইলটি এখানে পাওয়া যাবে: tor-driver-python/torDriver.py
সেটআপ এবং ওয়েবড্রাইভার উপাদানগুলির জন্য সেলেনিয়াম, পিপ্রিন্ট, সাবপ্রসেস এবং সকেট আমদানি করা হচ্ছে।
নিম্নলিখিত পদ্ধতিটি একটি উপাদানের জন্য পরীক্ষা করাকে বিমূর্ত করে, এবং এটি একটি টাইমআউটের মধ্যে দৃশ্যমান হলে True
বা False
প্রদান করে।
প্রক্সি পোর্টে সংকেত পাঠানোর আগে সক্রিয় থাকা দরকার। পাইথনে সকেট সংযোগ পরীক্ষা করার বিষয়ে স্ট্যাক ওভারফ্লোতে কিছু উদাহরণ অনুসরণ করে আমি এটি নিয়ে এসেছি:
মডিউলের বেশিরভাগ অংশ হল একটি ক্লাস যা ফায়ারফক্স প্রোফাইল নিয়ন্ত্রণ করে, গেকোড্রাইভার ডাউনলোড করে এবং টরব্রাউজার-লঞ্চার শুরু করে।
এখানে আমার একটি মৌলিক কনফিগারেশন এবং জিনিসগুলিকে ওভাররাইড করার কিছু উপায় রয়েছে, তবে বেশিরভাগই এটি যতটা সম্ভব সহজ রাখা:
প্রক্সি পোর্টের সাথে সংযোগ করার জন্য ফায়ারফক্স প্রোফাইলটিকে সর্বনিম্নভাবে কনফিগার করতে হবে, আমি এটির সাথে জাভাস্ক্রিপ্টও নিষ্ক্রিয় করেছি।
এটি একটি ড্রাইভার শুরু করতে TorDriver থেকে প্রোফাইল এবং বাইনারি ব্যবহার করে
একটি সাবপ্রসেসে গেকোড্রাইভার ডাউনলোড এবং নিষ্কাশনের জন্য একটি পদ্ধতি যোগ করা। উল্লেখ করার মতো যে কোনওভাবে এটিকে কন্টেইনারে চালানোর সময় tar.gz
আর সংকুচিত হয় না এবং এটি কেবল সংরক্ষণাগারমুক্ত করা প্রয়োজন। ত্রুটি সম্পর্কে আরও তথ্য এখানে উপলব্ধ: stdin: gzip বিন্যাসে ত্রুটি নয়
সকেট সাড়া না দেওয়া পর্যন্ত, প্রক্সি পোর্টের সাথে একটি সংযোগ পুনরায় চেষ্টা করুন:
এই উদাহরণে আমি নিম্নলিখিত পদ্ধতি দুটি ফেজ পদ্ধতি গ্রহণ করেছি। প্রথম পর্যায় হল তথ্য সংগ্রহ, এবং পরবর্তী ধাপ হল তথ্য প্রক্রিয়াকরণের জন্য। এইভাবে আমি পুরো প্রক্রিয়ার জন্য নেটওয়ার্ক সংযোগের সাথে আবদ্ধ নই, এবং উত্স উপাদানগুলিতে ফিরে না গিয়ে ফলাফলগুলি যতবার প্রয়োজন ততবার পার্স করার চেষ্টা করতে পারি।
সম্পূর্ণ ফাইলটি এখানে পাওয়া যাবে: tor-driver-python/crawler.py
ক্রলার একটি টেক্সট ফাইল পড়ে এবং WebDriver সেশনে প্রশ্নগুলি পূরণ করতে সেই তথ্য ব্যবহার করে। ক্রলের অবস্থা json ফাইলের একটি ফোল্ডারে প্রতি প্রশ্নে একটি করে রাখা হয়। আমি তথ্যটি একবার রপ্তানি করার জন্য একেবারে প্রয়োজনীয় ন্যূনতম প্রক্রিয়াকরণ করার চেষ্টা করি এবং সাইট(গুলি) এ ফিরে যাওয়ার পরিবর্তে বিদ্যমান ডেটাতে পরবর্তী প্রক্রিয়াকরণ ঘটতে পারে।
আমি অনুসন্ধানগুলি সংরক্ষণ করার জন্য একটি পাঠ্য ফাইল ব্যবহার করছি৷ আমি একটি পাঠ্য ফাইল বেছে নিয়েছি কারণ এটি পুনর্গঠন করা খুব সহজ৷ টেক্সট এডিট করা হল একটি কম বাধা নতুন তথ্য দিয়ে ক্রল শুরু করতে, অথবা যেটি আংশিকভাবে ব্যর্থ হয়েছে তা আবার শুরু করতে। যদি এই ক্রলারের আরও জটিল ডেটা প্রয়োজনীয়তা থাকে তবে আমি পরিবর্তে একটি ডেটাবেস ব্যবহার করার কথা বিবেচনা করব। এটি রিপোর্টিংয়ের জন্য একটি কাস্টম ব্যবহারকারী ইন্টারফেসের সাথে স্ক্যান নিয়ন্ত্রণের জন্য একটি API প্রয়োগ করার অনুমতি দেবে।
উদাহরণ ফাইলগুলি ইতিমধ্যে রেপোতে ফলাফল ফোল্ডারে রয়েছে: tor-driver-python/results
আরও শক্তিশালী ক্রলারে আমি একটি প্রকৃত ডাটাবেস প্রযুক্তি ব্যবহার করার পরামর্শ দেব। ডেটা সংগ্রহ কোথায় থামছে তা সহজেই জানাতে এবং পুনরায় চালু করার সুবিধার্থে এটি যথেষ্ট।
ক্রলারকে নিম্নলিখিত কমান্ড দিয়ে কন্টেইনার থেকে চালানো যেতে পারে। রিপোর্ট জেনারেটরের জন্য JSON ফাইল থাকা প্রয়োজন, উদাহরণ রপ্তানি CSV ফাইল এখানে পাওয়া যাবে:
ধারক শুরু করুন:
docker run -it --rm -p 5901:5901 -v "${HOME}/src":/src excitingtheory/kalilinux-xvfb:torbrowser
কন্টেইনারে একটি VNC সার্ভার শুরু করুন, এটি সেশন পাসওয়ার্ডের জন্য অনুরোধ করবে:
/opt/start-vnc-server-once.sh
VNC সেশনের ভিতর থেকে ক্রল শুরু করুন:
python3 crawler.py
ক্রলার টর ব্রাউজার শুরু করার জন্য অপেক্ষা করবে, এবং দুর্ভাগ্যবশত, এটি একটি ম্যানুয়াল পদক্ষেপ। শুধু চেকবক্সে ক্লিক করুন, এবং সংযোগ ক্লিক করুন। একটি উদাহরণের জন্য ভিডিও ডেমো দেখুন.
রিপোর্ট স্ক্রিপ্ট থেকে একটি কমা সেপারেটেড ভ্যালু (CSV) ফাইল তৈরি করবে
JavaScript অবজেক্ট নোটেশন (JSON) ফলাফল ফাইলগুলি ক্রলার ক্রল জুড়ে সংরক্ষণ করে। আমি CSV ফর্ম্যাটটি বেছে নিয়েছি কারণ এটি সহকর্মীদের সাথে ভাগ করে নেওয়ার জন্য একটি সাধারণ বিন্যাস, তবে আরও বিশ্লেষণের জন্য অন্যান্য সরঞ্জামগুলিতে আমদানি করা সহজ৷
সম্পূর্ণ ফাইলটি এখানে পাওয়া যাবে: tor-driver-python/report.py
এটি JSON পড়তে, CSV লিখতে এবং ফরম্যাটিং এবং ডেটা উপস্থাপনার জন্য ইউআরএল পার্স করতে পাইথন লাইব্রেরিতে নির্মিত ব্যবহার করে। তারপরে ফলাফলগুলি লুপ করে এবং ডেটা প্রক্রিয়াকরণ শুরু করতে সেগুলি লোড করে৷
এটি রিপোর্ট জেনারেটরের মূল কার্যকারিতা। এটি ফলাফল অবজেক্টে ক্যাপচার করা ডেটার একটি চূড়ান্ত উপস্থাপনা এবং ক্রম তৈরি করে। সাধারণত ইউআরএলগুলি শুধুমাত্র একটি সাইটের মাধ্যমে ক্রলারদের কার্যকরী আন্দোলনের জন্য উপযোগী, এবং একটি চূড়ান্ত ডেটা ক্যাপচার হিসাবে নয়, তবে এটি আরও ডেটা নিষ্কাশন কাস্টমাইজ করার জন্য একটি ভাল শুরু।
ক্রলের ফলাফল ./results
ডিরেক্টরিতে JSON ফাইল হিসাবে সংরক্ষিত হয়। আমি ডেটা থেকে একটি প্রতিবেদন তৈরি করতে নিম্নলিখিত স্ক্রিপ্টটি ব্যবহার করব।
python3 report.py
একটি উদাহরণ আউটপুট CSV ফাইল এখানে পাওয়া যাবে: tor-driver-python/output.csv
বট কার্যকলাপ সনাক্ত এবং প্রশমিত করার কয়েকটি ভিন্ন উপায় আছে। আমি প্রাথমিকভাবে ডেটা সেন্টারের দিকে ফোকাস করব, তবে আমি কিছু ক্লায়েন্ট সাইড সনাক্তকরণ পদ্ধতি নিয়েও আলোচনা করব। ক্লায়েন্টকে কখনই বিশ্বাস করা যায় না যদিও ক্লায়েন্ট সাইড সিগন্যাল যেকোন সময় পরিবর্তিত হতে পারে এবং প্রতারণা করা যেতে পারে। আমি মনে করি একটি সনাক্তকরণ সিস্টেম ডিজাইন করার সময় এটি মাথায় রাখা গুরুত্বপূর্ণ। ডেটা সেন্টারে আমি আলোচনা করব সুরক্ষার দুটি ফর্ম রয়েছে: হার সীমিত করা, এবং খ্যাতি ব্লক করা৷
জাভাস্ক্রিপ্টের সাথে ক্লায়েন্ট সাইডে একটি সক্রিয় ওয়েবড্রাইভার সেশন সনাক্ত করার কয়েকটি উপায় রয়েছে: গিথুবে কিছুটা সম্পর্কিত সমস্যা আরও বিশদে যায় । মূলত, যেহেতু WebDriver প্রোটোকল নথি এবং উইন্ডো অবজেক্টগুলিকে পরিবর্তন করে এটি ক্লায়েন্ট সাইড কোডে সনাক্ত করা যেতে পারে।
আমি সেই সমাধানগুলিতে ফোকাস করতে যাচ্ছি যেগুলির সাথে আমার সবচেয়ে বেশি অভিজ্ঞতা আছে, ফাস্টলি, AWS WAF, এবং Nginx। ক্লাউডফ্লেয়ার একটি সম্পূর্ণ বিস্ময় ছিল, তাই আমি তাদের অফার সম্পর্কেও কথা বলতে যাচ্ছি।
AWS ওয়েব অ্যাপ্লিকেশন ফায়ারওয়াল (WAF) রেট ভিত্তিক নিয়মগুলি পরিষেবার অস্বীকৃতির কার্যকলাপের স্তরগুলিকে ব্লক করতেও ব্যবহার করা যেতে পারে এবং সেখানে ডিফল্ট নিয়ম রয়েছে যা টর নেটওয়ার্ক ট্র্যাফিক সনাক্ত করতেও ব্যবহার করা যেতে পারে, আরও তথ্যের জন্য আইপি রেপুটেশন রুল ডকুমেন্টেশন দেখুন৷ আরেকটি সাধারণ পদ্ধতি হল অন্যান্য ডেটা সেন্টার থেকে সমস্ত ট্র্যাফিক ব্লক করা, যা নিরাপদ যদি লক্ষ্য শ্রোতারা গ্রাহক হয়। যাইহোক, ব্যবসাগুলি ক্লাউড ভিপিএন এবং অন্যান্য প্রযুক্তি ব্যবহার করতে পারে যা এটি বৈধ ট্রাফিকের জন্য ক্ষতিকারক হতে পারে।
ফাস্টলি'স সিগন্যাল সায়েন্স, একটি খুব জনপ্রিয় সমাধান, বিশেষভাবে টর ট্র্যাফিক সনাক্ত করতে ব্যবহার করা যেতে পারে। প্রথমত, তারা DDOS আক্রমণ থেকে রক্ষা করতে পারে, আরও তথ্যের জন্য তাদের DDOS মিটিগেশন পৃষ্ঠা দেখুন। দ্বিতীয়ত, তারা টর ট্র্যাফিক সনাক্ত করতে পারে এবং এটি ব্লক করতে পারে। এখানে সিস্টেম সিগন্যাল ডকুমেন্টেশন ব্যবহার করা হয়েছে যা এটিকে কভার করে।
Nginx এর জন্য এটি করার বিষয়ে কিছু নিবন্ধ রয়েছে: Nginx এর সাথে বা আপনার ওয়েব অ্যাপ্লিকেশনের ভিতরে কীভাবে বেনামী ট্র্যাফিক ব্লক করবেন । মূলত, টর প্রস্থান নোড সম্পর্কে তথ্য পেতে API-কে কল করে, আইপি ব্লক করার নিয়ম তৈরি করা যেতে পারে এবং একটি সময়সূচীতে Nginx এ প্রয়োগ করা যেতে পারে।
উপরের ক্লাউড প্রদানকারীদের একটি আশ্চর্যজনক বিপরীতে, ক্লাউডফ্লেয়ার টর ক্লায়েন্টদের জন্য সমর্থন প্রদান করছে। আমি তাদের টর সমর্থন ডকুমেন্টেশন জুড়ে এসেছি!? যেখানে তারা নেটওয়ার্ক থেকে Tor ব্যবহারকারীদের সামগ্রী পরিবেশন করার ক্ষমতা নিয়ে আলোচনা করে। আমি মনে করি এটি সত্যিই একটি আকর্ষণীয় পদ্ধতি, এবং আমি ভবিষ্যতে এটি আরও অন্বেষণ করতে আগ্রহী।
WebDriver পরীক্ষার জন্য একটি শক্তিশালী টুল এবং এটি এমন জায়গায় তথ্য সংগ্রহের জন্যও ব্যবহার করা যেতে পারে যেখানে একটি API-তে অ্যাক্সেস সম্ভব নয়। উদাহরণস্বরূপ: অ্যাক্সেস অন্যথায় সীমাবদ্ধ, সেন্সর করা, খুব ব্যয়বহুল, বা সাধারণত বিরোধী প্রতিযোগিতামূলক অনুশীলনের পিছনে লক করা হয়। এপিআই থেকে সংগৃহীত তথ্যের সাথে ওয়েব ক্রলিং থেকে সংগৃহীত ডেটা একত্রিত করা আরও ভাল।
এটি একটি গুরুত্বপূর্ণ অনুশীলন কারণ বটস থেকে ক্ষতিকারক ট্র্যাফিক প্রতিরোধ করা কঠিন থেকে কঠিনতর হয়ে উঠছে এবং এটি কীভাবে প্রশমিত করা যায় তা বিবেচনা করার জন্য আক্রমণ না হওয়া পর্যন্ত অপেক্ষা করা একটি ভাল সুরক্ষা অনুশীলন নয়। আমি বিশ্বাস করি যে অনলাইনে তথ্য দেওয়ার জন্য দায়ী প্রত্যেকেরই জানা উচিত যে তারা যে সিস্টেমের জন্য দায়ী তাদের বিরুদ্ধে কীভাবে লঙ্ঘিত তথ্য ব্যবহার করা হবে। একটি সরলীকৃত পরিস্থিতিতে, নৈতিক সীমাবদ্ধতার সাথে, আমি নিম্নলিখিতগুলি করে এটি প্রদর্শন করেছি: