আমার ওয়েবসারভার হত্যা থেকে বটগুলি থামানো দরকার


9

আমার হোস্টিং অ্যাকাউন্টের মধ্যে আমার কয়েকটি ওয়েবসাইটে আমার বট সমস্যা বাড়ছে। বোটগুলি আমার সম্পূর্ণ হোস্টিং অ্যাকাউন্টের জন্য 98% এর বেশি আমার সিপিইউ সংস্থান এবং আমার ব্যান্ডউইথের 99% ব্যবহার করে। এই বটগুলি আমার সাইটের জন্য প্রতি ঘন্টা 1 গিগাবাইটের বেশি ট্র্যাফিক জেনারেট করে । এই সাইটগুলিতে সকলের জন্য বাস্তব মানুষের ট্রাফিক হয় 100 কম মেগাবাইট / মাস

এই বটগুলি ব্লক করতে আমি উভয়ই রোবট.টিএসটিএসটি এবং .htaccess ফাইল নিয়ে বিস্তৃত গবেষণা করেছি তবে সমস্ত পদ্ধতি ব্যর্থ হয়েছে।

স্ক্রিপ্ট ডিরেক্টরিতে অ্যাক্সেস ব্লক করার জন্য আমি রোবটসটিটিএসটি ফাইলগুলিতে কোডও রেখেছি, তবে এই বটগুলি (গুগল, এমএস বিং, এবং ইয়াহু) বিধিগুলি উপেক্ষা করে এবং যাইহোক স্ক্রিপ্টগুলি চালায়।

আমি গুগল, এমএস বিং এবং ইয়াহু বটগুলি সম্পূর্ণরূপে ব্লক করতে চাই না, তবে আমি সেখানে ক্রল রেট সীমাবদ্ধ করতে চাই। এছাড়াও, robots.txt ফাইলটিতে ক্রল-বিলম্বের বিবৃতি যুক্ত করা বটগুলি ধীর করে না। সমস্ত বর্তমান সাইটের জন্য আমার বর্তমান রোবটসটিটিএসটি এবং .htacces কোডটি নীচে বর্ণিত।

ক্রল হারকে পরম সর্বনিম্নে কমিয়ে আনার জন্য আমি মাইক্রোসফ্ট এবং গুগল ওয়েবমাস্টার উভয় সরঞ্জামই সেটআপ করেছি, তবে তারা এখনও 10 টি হিট / সেকেন্ডের হারে এই সাইটগুলিকে হিট করছে।

তদ্ব্যতীত, আমি যখনই কোনও ফাইল আপলোড করি যা ত্রুটির কারণ হয়ে থাকে তখন পুরো ভিপিএস ওয়েবসভারটি কয়েক সেকেন্ডের মধ্যেই নীচে নেমে যায় যে এই বটগুলি দ্বারা আঘাত হানার কারণে আমি সাইটটি অ্যাক্সেসও করতে পারি না।

আমার ওয়েবসাইটে ট্র্যাফিকের অন-স্লট বন্ধ করতে আমি কী করতে পারি?

আমি আমার ওয়েব হোস্টিং সংস্থাকে (সাইট 5.com) বিগত মাসগুলিতে এই সমস্যাটি সম্পর্কে অনেকবার জিজ্ঞাসা করার চেষ্টা করেছি এবং তারা এই সমস্যায় আমাকে সহায়তা করতে পারে না।

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

robots.txt এর

User-agent: Mediapartners-Google
Disallow: 
User-agent: Googlebot
Disallow: 
User-agent: Adsbot-Google
Disallow: 
User-agent: Googlebot-Image
Disallow: 
User-agent: Googlebot-Mobile
Disallow: 
User-agent: MSNBot
Disallow: 
User-agent: bingbot
Disallow: 
User-agent: Slurp
Disallow: 
User-Agent: Yahoo! Slurp
Disallow: 
# Directories
User-agent: *
Disallow: /
Disallow: /cgi-bin/
Disallow: /ads/
Disallow: /assets/
Disallow: /cgi-bin/
Disallow: /phone/
Disallow: /scripts/
# Files
Disallow: /ads/random_ads.php
Disallow: /scripts/rss2html.php
Disallow: /scripts/search_terms.php
Disallow: /scripts/template.html
Disallow: /scripts/template_mobile.html

.htaccess

ErrorDocument 400 http://english-1329329990.spampoison.com
ErrorDocument 401 http://english-1329329990.spampoison.com
ErrorDocument 403 http://english-1329329990.spampoison.com
ErrorDocument 404 /index.php
SetEnvIfNoCase User-Agent "^Yandex*" bad_bot
SetEnvIfNoCase User-Agent "^baidu*" bad_bot
Order Deny,Allow
Deny from env=bad_bot
RewriteEngine on
RewriteCond %{HTTP_user_agent} bot\* [OR]
RewriteCond %{HTTP_user_agent} \*bot
RewriteRule ^.*$ http://english-1329329990.spampoison.com [R,L]
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
# Block out any script trying to base64_encode crap to send via URL
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]
# Block out any script that includes a <script> tag in URL
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Send all blocked request to homepage with 403 Forbidden error!
RewriteRule ^(.*)$ index.php [F,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$  [NC]
RewriteRule (.*) index.php
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
# Don't show directory listings for directories that do not contain an index file (index.php, default.asp etc.)
Options -Indexes
<Files http://english-1329329990.spampoison.com>
order allow,deny
allow from all
</Files>
deny from 108.
deny from 123.
deny from 180.
deny from 100.43.83.132

সংযুক্ত ব্যবহারকারী এজেন্ট বট চেক কোড দেখানোর জন্য আপডেট করুন

<?php
function botcheck(){
 $spiders = array(
   array('AdsBot-Google','google.com'),
   array('Googlebot','google.com'),
   array('Googlebot-Image','google.com'),
   array('Googlebot-Mobile','google.com'),
   array('Mediapartners','google.com'),
   array('Mediapartners-Google','google.com'),
   array('msnbot','search.msn.com'),
   array('bingbot','bing.com'),
   array('Slurp','help.yahoo.com'),
   array('Yahoo! Slurp','help.yahoo.com')
 );
 $useragent = strtolower($_SERVER['HTTP_USER_AGENT']);
 foreach($spiders as $bot) {
   if(preg_match("/$bot[0]/i",$useragent)){
     $ipaddress = $_SERVER['REMOTE_ADDR']; 
     $hostname = gethostbyaddr($ipaddress);
     $iphostname = gethostbyname($hostname);
     if (preg_match("/$bot[1]/i",$hostname) && $ipaddress == $iphostname){return true;}
   }
 }
}
if(botcheck() == false) {
  // User Login - Read Cookie values
     $username = $_COOKIE['username'];
     $password = $_COOKIE['password'];
     $radio_1 = $_COOKIE['radio_1'];
     $radio_2 = $_COOKIE['radio_2'];
     if (($username == 'm3s36G6S9v' && $password == 'S4er5h8QN2') || ($radio_1 == '2' && $radio_2 == '5')) {
     } else {
       $selected_username = $_POST['username'];
       $selected_password = $_POST['password'];
       $selected_radio_1 = $_POST['group1'];
       $selected_radio_2 = $_POST['group2'];
       if (($selected_username == 'm3s36G6S9v' && $selected_password == 'S4er5h8QN2') || ($selected_radio_1 == '2' && $selected_radio_2 == '5')) {
         setcookie("username", $selected_username, time()+3600, "/");
         setcookie("password", $selected_password, time()+3600, "/");
         setcookie("radio_1", $selected_radio_1, time()+3600, "/");
         setcookie("radio_2", $selected_radio_2, time()+3600, "/");
       } else {
        header("Location: login.html");
       }
     }
}
?>

আমি আরএসএস 2 এইচটিএমএলপিপি স্ক্রিপ্টের শীর্ষেও নীচে যুক্ত করেছি

// Checks to see if this script was called by the main site pages, (i.e. index.php or mobile.php) and if not, then sends to main page
   session_start();  
   if(isset($_SESSION['views'])){$_SESSION['views'] = $_SESSION['views']+ 1;} else {$_SESSION['views'] = 1;}
   if($_SESSION['views'] > 1) {header("Location: http://website.com/index.php");}

আপনি কখন নিজের আপডেট করেছেন robots.txt? রোবটগুলির আপডেট হওয়া সংস্করণটি পড়তে সময় নিতে পারে।
Ilanco

কিছু দিন আগে. আমার সত্যিকারের যা দরকার তা হ'ল আরএসএস 2 এইচটিএমএলপিপি স্ক্রিপ্ট চালানো থেকে বটগুলি প্রতিরোধ করা। আমি উভয় সেশন এবং কুকিজ চেষ্টা করেছিলাম এবং উভয়ই ব্যর্থ হয়েছিল।

rss2html.phpআপনার সাইটটি কীভাবে ব্যবহার হচ্ছে? পিএইচপি এর মাধ্যমে অন্তর্ভুক্ত, পুনর্নির্দেশ, অ্যাজাক্স ....?
সিএইচও

আরএসএসএইচটিএমএল.পিপি ফাইলগুলিকে একটি ফাইল_জেট_কন্টেন্টস () কমান্ডের মাধ্যমে ডাকা হয়

file_get_contents...? অদ্ভুত বলে মনে হচ্ছে। ফাইলটি অন্য সার্ভারে আছে বা কিছু?
সিএইচও

উত্তর:


3

যদি rss2html.phpক্লায়েন্ট সরাসরি ব্যবহার না করে (এটি যদি পিএইচপি সর্বদা এটি কোনও লিঙ্ক বা কিছু না হয়ে সর্বদা ব্যবহার করে) তবে বটগুলি ব্লক করার চেষ্টা ভুলে যান। আপনাকে যা করতে হবে তা হ'ল মূল পৃষ্ঠায় একটি ধ্রুবক বা কিছু নির্দিষ্ট করা, তারপরে includeঅন্য স্ক্রিপ্ট। অন্য স্ক্রিপ্টে, ধ্রুবকটি সংজ্ঞায়িত হয়েছে কিনা তা পরীক্ষা করে দেখুন এবং একটি 403 ত্রুটি বা একটি ফাঁকা পৃষ্ঠা বা এটি সংজ্ঞায়িত না হলে যাই হোক না কেন থুথুন।

এখন, এটি কাজ করার জন্য, আপনাকে তার includeপরিবর্তে ব্যবহার করতে হবে file_get_contents, কারণ পরবর্তীটি কেবলমাত্র ফাইলটিতে পড়বে (আপনি যদি কোনও স্থানীয় পাথ ব্যবহার করছেন), বা একটি সম্পূর্ণ অন্যান্য প্রক্রিয়াতে চালিত হবে (আপনি যদি ' একটি ইউআরএল ব্যবহার করে)। তবে এটি এমন পদ্ধতি যা জুমলার মতো স্টাফ! কোনও স্ক্রিপ্ট সরাসরি অন্তর্ভুক্ত করা থেকে বিরত রাখতে ব্যবহার করে। এবং URL টির পরিবর্তে কোনও ফাইল পাথ ব্যবহার করুন, যাতে আপনি এটি চালানোর চেষ্টা করার আগে পিএইচপি কোডটি ইতিমধ্যে পার্স করা যায় না।

rss2html.phpডকুমেন্টের মূলের নীচে থেকে সরানো আরও ভাল হবে তবে কিছু হোস্ট এটি করা কঠিন করে তোলে। এটি কোনও বিকল্প আপনার সার্ভার / হোস্টের সেটআপের উপর নির্ভর করে।


1
চাও, ধন্যবাদ বর্তমানে, আমি পরিবর্তে ফাইল_গেট_কন্টেন্টগুলি রূপান্তর করতে আমার কোডটি আবার লিখছি।
স্যামি

4

বটগুলির দ্বারা সরবরাহিত ব্যবহারকারী এজেন্ট স্ট্রিংয়ের উপর ভিত্তি করে আপনি আপনার স্ক্রিপ্টটি 404 ত্রুটি নিক্ষেপের জন্য সেট করতে পারেন - তারা শীঘ্রই ইঙ্গিতটি পাবে এবং আপনাকে একা ছেড়ে চলে যাবে।

if(isset($_SERVER['HTTP_USER_AGENT'])){
   $agent = $_SERVER['HTTP_USER_AGENT'];
}

if(preg_match('/^Googlebot/i',$agent)){
   http_response_code(301);
   header("HTTP/1.1 301 Moved Permanently");
   header("Location: http://www.google.com/");
   exit;
}

আপনার লগগুলি চয়ন করুন এবং বিংবোট ইত্যাদি একইভাবে বাতিল করুন - এটি অনুরোধগুলি থামবে না, তবে কিছু ব্যান্ডউইথ সংরক্ষণ করতে পারে - গুগলবোটকে তার নিজস্ব medicineষধের স্বাদ দেবে - মাওহাহাহাহাহা!

আপডেট করা হয়েছে

আপনার কোডটি দেখে মনে হচ্ছে আপনার সমস্যাটি এখানে রয়েছে:

if (preg_match("/$bot[1]/i",$hostname) && $ipaddress == $iphostname)

যদি তারা দূষিত বট হয় তবে তারা যে কোনও জায়গা থেকে আসতে পারে, সেই $ipaddressধারাটি বের করে এনে তাদের 301 বা 404 টি প্রতিক্রিয়া নিক্ষেপ করুন।

বক্সের পাশে ডানদিকে ভাবছি

  1. গুগলবট কখনই কুকিজ গ্রহণ করে না , তাই এটি সেগুলি সঞ্চয় করতে পারে না। আসলে, আপনার যদি সমস্ত ব্যবহারকারীর জন্য কুকিজের প্রয়োজন হয়, সম্ভবত এটি বটটি আপনার পৃষ্ঠায় অ্যাক্সেস করা থেকে বিরত রাখবে।
  2. গুগলবোট ফর্মগুলি - বা - জাভাস্ক্রিপ্ট বোঝে না, তাই আপনি আপনার লিঙ্কগুলি গতিশীলভাবে তৈরি করতে পারেন বা ব্যবহারকারীরা আপনার কোডটিতে পৌঁছানোর জন্য একটি বোতামে ক্লিক করতে পারেন (উপযুক্ত টোকেন সংযুক্ত)।

    <a href="#" onclick="document.location='rss2html.php?validated=29e0-27fa12-fca4-cae3';">Rss2html.php</a>

    • rss2html.php? যাচাইকৃত = 29e0-27fa12-fca4-cae3 - মানব
    • rss2html.php - বট

1
আপনি যতটা ভাবেন তত তাড়াতাড়ি নয়। আমি বট কয়েক মাস ধরে একই অস্তিত্বের পৃষ্ঠায় আঘাত করতে দেখেছি, পৃষ্ঠাটি মুছে ফেলার পরে মাঝে মাঝে এমনকি কয়েক বছর পরেও। বটটি কতটা ভাল আচরণ করেছে এবং এর পরে কী তা নির্ভর করে s
সিএওও

মানুষের দর্শনার্থীদের জন্য কাজ করার উপায়টি হল index.php ফাইলটি rss2html.php স্ক্রিপ্টটি কল করে। বটগুলি index.php স্ক্রিপ্ট এড়ায় এবং সরাসরি rss2html.php স্ক্রিপ্টটি চালায়। আমি যদি সেই আরএসএস 2 এইচটিএমএল.পিপি ফাইলটিকে সুরক্ষা দিতে পারি তবে যদি তা সূচি.পিএইচপি স্ক্রিপ্টের মাধ্যমে অ্যাক্সেস না করা হয়?

আর কিছু থেকে আরএসএস 2 এইচটিএমএল.পিএফ নামকরণ এবং নতুন সূত্রের জন্য আপনার সূচি.পিএফপি আপডেট করার চেষ্টা করুন।
ব্লুজরকএডিক্ট

আমি ফাইলটির নাম বদলে দেওয়ার চেষ্টা করেছি, তবে এটি কয়েক দিন পরে ব্যর্থ হয়। এই থ্রেডটিতে আমি যে কোডটি ব্যবহার করছি তা কীভাবে যুক্ত করতে পারি? আমি যা চেষ্টা করেছি তা আপনাকে দেখাতে চাই।

1
ঠিক আছে - আমি বুঝতে পারি যে আপনি টানতে পারেন :) - আপনার ওয়েবসাইটের বাইরে আরএসএস 2 এইচটিএমএল.পিপি স্ক্রিপ্ট কোডটি রাখুন (উত্তরটি আপডেট করবে)

2

মাকড়সা / বটস / ক্লায়েন্ট ইত্যাদির জন্য পিএইচপি সীমাবদ্ধ / ব্লক ওয়েবসাইটের অনুরোধগুলি

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

ক্লায়েন্ট / বটস ব্লক

ডেমো: http://szczepan.info/9-webdesign/php/1-php-limit- block-website-requests-for-spider-bots-clients- etc.html

কোড:

/* Function which can Block unwanted Requests
 * @return array of error messages
 */
function requestBlocker()
{
        /*
        Version 1.0 11 Jan 2013
        Author: Szczepan K
        http://www.szczepan.info
        me[@] szczepan [dot] info
        ###Description###
        A PHP function which can Block unwanted Requests to reduce your Website-Traffic.
        God for Spiders, Bots and annoying Clients.

        */

        # Before using this function you must 
        # create & set this directory as writeable!!!!
        $dir = 'requestBlocker/';

        $rules   = array(
                #You can add multiple Rules in a array like this one here
                #Notice that large "sec definitions" (like 60*60*60) will blow up your client File
                array(
                        //if >5 requests in 5 Seconds then Block client 15 Seconds
                        'requests' => 5, //5 requests
                        'sek' => 5, //5 requests in 5 Seconds
                        'blockTime' => 15 // Block client 15 Seconds
                ),
                array(
                        //if >10 requests in 30 Seconds then Block client 20 Seconds
                        'requests' => 10, //10 requests
                        'sek' => 30, //10 requests in 30 Seconds
                        'blockTime' => 20 // Block client 20 Seconds
                ),
                array(
                        //if >200 requests in 1 Hour then Block client 10 Minutes
                        'requests' => 200, //200 requests
                        'sek' => 60 * 60, //200 requests in 1 Hour
                        'blockTime' => 60 * 10 // Block client 10 Minutes
                )
        );
        $time    = time();
        $blockIt = array();
        $user    = array();

        #Set Unique Name for each Client-File 
        $user[] = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : 'IP_unknown';
        $user[] = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '';
        $user[] = strtolower(gethostbyaddr($user[0]));

        # Notice that I use files because bots do not accept Sessions
        $botFile = $dir . substr($user[0], 0, 8) . '_' . substr(md5(join('', $user)), 0, 5) . '.txt';


        if (file_exists($botFile)) {
                $file   = file_get_contents($botFile);
                $client = unserialize($file);

        } else {
                $client                = array();
                $client['time'][$time] = 0;
        }

        # Set/Unset Blocktime for blocked Clients
        if (isset($client['block'])) {
                foreach ($client['block'] as $ruleNr => $timestampPast) {
                        $elapsed = $time - $timestampPast;
                        if (($elapsed ) > $rules[$ruleNr]['blockTime']) {
                                unset($client['block'][$ruleNr]);
                                continue;
                        }
                        $blockIt[] = 'Block active for Rule: ' . $ruleNr . ' - unlock in ' . ($elapsed - $rules[$ruleNr]['blockTime']) . ' Sec.';
                }
                if (!empty($blockIt)) {
                        return $blockIt;
                }
        }

        # log/count each access
        if (!isset($client['time'][$time])) {
                $client['time'][$time] = 1;
        } else {
                $client['time'][$time]++;

        }

        #check the Rules for Client
        $min = array(
                0
        );
        foreach ($rules as $ruleNr => $v) {
                $i            = 0;
                $tr           = false;
                $sum[$ruleNr] = 0;
                $requests     = $v['requests'];
                $sek          = $v['sek'];
                foreach ($client['time'] as $timestampPast => $count) {
                        if (($time - $timestampPast) < $sek) {
                                $sum[$ruleNr] += $count;
                                if ($tr == false) {
                                        #register non-use Timestamps for File 
                                        $min[] = $i;
                                        unset($min[0]);
                                        $tr = true;
                                }
                        }
                        $i++;
                }

                if ($sum[$ruleNr] > $requests) {
                        $blockIt[]                = 'Limit : ' . $ruleNr . '=' . $requests . ' requests in ' . $sek . ' seconds!';
                        $client['block'][$ruleNr] = $time;
                }
        }
        $min = min($min) - 1;
        #drop non-use Timestamps in File 
        foreach ($client['time'] as $k => $v) {
                if (!($min <= $i)) {
                        unset($client['time'][$k]);
                }
        }
        $file = file_put_contents($botFile, serialize($client));


        return $blockIt;

}


if ($t = requestBlocker()) {
        echo 'dont pass here!';
        print_R($t);
} else {
        echo "go on!";
}

1

সম্ভবত আপনার সাইটটি ভুয়া গুগল বট (গুলি) দ্বারা সূচীভূত হচ্ছে। সমস্ত নকল গুগল বট অনুরোধের জন্য আপনি একটি চেক যোগ করার চেষ্টা করতে পারেন এবং 404 পরিবেশন করতে পারেন।

এখানে একটি নিবন্ধ যা Googlebot যাচাই করতে হবে তা ব্যাখ্যা করে: http://googlewebmastercentral.blogspot.com/2006/09/how-to-verify-googlebot.html

এছাড়াও আপনি পরিচিত জাল বট বিরুদ্ধে আপনার রেকর্ডের পরীক্ষা পারে: http://stopmalvertising.com/security/fake-google-bots.html


ধন্যবাদ, তবে বাস্তবে আমি এটিও চেষ্টা করেছিলাম, ব্যবহারকারী এজেন্টগুলি নির্ধারণ করে এবং বটগুলি লগইন পৃষ্ঠায় প্রেরণ করে। এটিও ব্যর্থ হয়েছিল।

আপনি পয়েন্টটি মিস করছেন এমন মনে হচ্ছে - বটের সত্যতা নির্ধারণের জন্য ব্যবহারকারী এজেন্টের উপর নির্ভর করা যথেষ্ট নয়।
ব্লুজরকএডিক্ট

1

আপনার সত্যিকারের প্রথম স্থানে নিশ্চিত হওয়া উচিত যে আপনার যে কোনও আপত্তিজনক ক্রলারের কোনও ইউজারেজেন্টের কাছ থেকে অনুরোধ করা কোনও পৃষ্ঠা স্থির পৃষ্ঠায় পরিবেশন করা হবে।

একটি শর্ত বা আপনার HTTP সার্ভারের সাথে সমতুল্য একটি অ্যাপাচি Mod_rewrite। অ্যাপাচি এর জন্য, এরকম কিছু:

RewriteCond  %{HTTP_USER_AGENT}  ^GoogleBot [OR]
RewriteCond  %{HTTP_USER_AGENT}  ^OtherAbusiveBot
RewriteRule  ^/$                 /static_page_for_bots.html  [L]

ধন্যবাদ, তবে আমি গুগল, এমএস বিং এবং ইয়াহু বটগুলিকে সম্পূর্ণরূপে ব্লক করতে চাই না, তবে আমি সেখানে আরএসএস 2html.php স্ক্রিপ্ট ফাইলটিতে সরাসরি হিট সীমাবদ্ধ করতে চাই। আমার আরএসএস 2 এইচটিএমএল.পিপি স্ক্রিপ্টের শুরুতে কিছু যুক্ত করা দরকার যা সূচি.পিএইচপি স্ক্রিপ্টের মাধ্যমে অ্যাক্সেস না করা থাকলে এটি চালানো থেকে রোধ করবে। বটগুলি বর্তমানে সূচি.এফপি ফাইলটিকে বাইপাস করে আরএসএস 2 এইচটিএমএল.পিএইচ স্ক্রিপ্ট চালাচ্ছে।
স্যামি

এটি তাদের অবরুদ্ধ করে না .. আপনি কেবল আপনার পিএইচপি এর একটি ক্যাশেড সংস্করণ পরিবেশন করেন .. এটি সার্ভার টুডোর পক্ষে খুব সহজ, এটি একটি পিএইচপি ইনস্ট্যান্স / একটি কম অ্যাপাচি শিশু প্রক্রিয়া। => ব্যয় (স্ট্যাটিক ফাইল) <ব্যয় (পিএইচপি উদাহরণ)।
স্ম্যাসে

আমি কীভাবে পৃষ্ঠাগুলি ক্যাশে করব? যেহেতু পৃষ্ঠাগুলি আরএসএস, তাই ক্যাশেড পৃষ্ঠাগুলি কি প্রায়শই তাজা তথ্য দেওয়া যায়?
স্যামি

অবশ্যই ... একটি ক্রোনজব লিখুন যা এটি আপনার জন্য করে। যদি আপনি বলেন যে আপনি যদি সার্ভারটি 10req / s তে হিট করেন তবে আপনি যদি 1 মিনিটের জন্য পৃষ্ঠাগুলি ক্যাশে করেন তবে আপনি আপনার সার্ভারটি 599 অতিরিক্ত পিএইচপি ইনস্ট্যান্সে সংরক্ষণ করেছেন (যার মধ্যে অবশ্যই ডিবি সংযোগ / অনুসন্ধানগুলি অন্তর্ভুক্ত রয়েছে) .. এবং এক মিনিটে একবার আমি কী ভোট দেব তার চেয়ে অনেক বেশি জন্য: 10/15 মিনিট।
স্ম্যাসে

1

স্ম্যাসির পোস্টে চালিয়ে যেতে, আপনি বেশ কয়েকটি শর্ত রাখতে পারেন:

RewriteCond  %{HTTP_USER_AGENT}  ^GoogleBot [OR]
RewriteCond  %{HTTP_USER_AGENT}  ^OtherAbusiveBot
RewriteRule  ^rss2html\.php$     /static.html  [L]

এইভাবে, বটগুলি এখনও আপনার পৃষ্ঠাগুলি অ্যাক্সেস করে তবে কেবল এটির মধ্যে নয়। এটি আশ্চর্যের বিষয় যে (বৈধ) বটগুলি নিয়ম মানছে না, আপনার কাছে কি এমন কোনও রেফার রয়েছে যা অন্য উত্সগুলি (ডোমেন নেম ফরোয়ার্ডিং, ...) থেকে আপনার পৃষ্ঠায় বটগুলিকে চাপ দেয়?


1

আমি একই সমস্যাটি http://perishablepress.com/blackhole-bad-bots/ এ উপলব্ধ স্ক্রিপ্টের সাথে সমাধান করেছি । এই ব্ল্যাকহোল পদ্ধতির সাহায্যে আমি দূষিত আইপিগুলির একটি তালিকা সংগ্রহ করেছি এবং তারপরে .htaccess ব্যবহার করে সেগুলি অস্বীকার করেছে। (যা বাধ্যতামূলক নয়, যেহেতু স্ক্রিপ্ট নিজেই নিষেধাজ্ঞা জারি করে known

অনেক পরিচিত জাঙ্ক বটগুলি ব্লক করতে এইচটিসিএক্স বিধিগুলির সম্পূর্ণ তালিকার জন্যও এই পৃষ্ঠাটি দেখুন। http://www.askapache.com/htaccess/blocking-bad-bots-and-scrapers-with-htaccess.html


0
// Checks to see if this script was called by the main site pages,
// (i.e. index.php or mobile.php) and if not, then sends to main page
session_start();  
if (isset($_SESSION['views'])) {$_SESSION['views'] = $_SESSION['views']+ 1;} else {$_SESSION['views'] = 1;}
if ($_SESSION['views'] > 1) {header("Location: http://website.com/index.php");}

এই স্ক্রিপ্টটি মন্তব্য যা বলে তা করে না, বাস্তবে এটি সম্পূর্ণ বিপরীতটি করে। এই হবে সবসময় মাধ্যমে বট দিন যখন বট আপনার স্ক্রিপ্টটি অনুরোধ অধিবেশন পরিবর্তনশীল সেট করা হবে না যেহেতু। এটি সম্ভবত যা করবে তা হ'ল বৈধ অনুরোধগুলি (ইনডেক্স। পিএফপি বা মোবাইল.এফপি থেকে) একাধিকবার স্ক্রিপ্ট কল করা থেকে বিরত রাখা।

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

ইতিমধ্যে উল্লিখিত হয়েছে হিসাবে, ওয়েবের মূলের উপরে (পাবলিক ওয়েবস্পেসের বাইরে) আরএসএস 2 এইচটিএমএল.পিপি স্থাপন করা একটি বটকে সরাসরি স্ক্রিপ্ট অ্যাক্সেস করা থেকে বিরত রাখতে পারে - তবে আপনি কি বলছেন যে এটি অন্যান্য সমস্যার কারণ? অথবা, এটি একটি ডিরেক্টরিতে রাখুন এবং সেই ডিরেক্টরিটি .htaccess দিয়ে সুরক্ষিত করুন। অথবা আপনি এমনকি সরাসরি অনুরোধ থেকে .htaccess এ ফাইলটি নিজেই রক্ষা করতে সক্ষম হতে পারেন?


0

ক্লাউডফ্লেয়ারে আপনার ডোমেন সেট আপ করুন (এর জন্য নিখরচায় পরিষেবা)। আপনার সার্ভারে আঘাত করার আগে তারা ডোমেন স্তরে দূষিত বটগুলি ব্লক করে। প্রায় 20 মিনিট সময় নেয়, কোড সহ কখনও বানর লাগবে না।

আমি আমার সমস্ত সাইট এবং সমস্ত ক্লায়েন্ট সাইটে এই পরিষেবাটি ব্যবহার করি। তারা প্রকল্প মধু পাত্র সহ অনেকগুলি কৌশলের ভিত্তিতে দূষিত বটগুলি সনাক্ত করে।


0

আপনাকে যা করতে হবে তা হ'ল অ্যাপাচি / এনগিনেক্স / ইমেল / এফটিপি-র জন্য আপনার সার্ভারে একটি SSL শংসাপত্র ইনস্টল করা install এইচএসটিএস সক্ষম করুন এবং আপনার নিজের এসএসএল.কনফ ফাইলটি সম্পাদনা করতে হবে যাতে এসএসএলভি 2 এসএসএলভি 3 টিএলএসভি 1 অক্ষম থাকে এবং আগত সংযোগগুলির অনুমতি দেয় না। আপনার সার্ভারটি সঠিকভাবে শক্তিশালী করুন এবং আপনার কাছে বট থেকে কোনও সমস্যা হবে না।


এসএসএল / টিএলএস এই ক্ষেত্রে কোন সমস্যা সমাধান করছে তা আমার কাছে পরিষ্কার নয়। দেখে মনে হচ্ছে আপনি প্রশ্নটি করছেন এবং ফলাফলটি পৌঁছেছেন। দয়া করে ব্যাখ্যা করুন কীভাবে এই সমাধানটি সমস্যাটিকে নিয়ন্ত্রণ করে।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.